python线程安全可变对象副本

时间:2013-06-26 14:19:41

标签: python thread-safety copy deep-copy

python's copy模块线程是否安全?

如果没有,我应该如何在python中以线程安全的方式复制\ deepcopy可变对象?

1 个答案:

答案 0 :(得分:9)

Python的GIL保护字节码,而不是Python语句(参见shortlong解释)。因为copy.copy()copy.deepcopy()都是在python中实现的,所以它们肯定不只是一个字节码,所以不,它们不是线程安全的!

如果您必须使用多个线程,并且在很多情况下您应该使用IO专用线程,请执行必须执行的操作 - 使用threading.Lock()。请注意,您可以use the elegant with statement with the lock object