python's copy
模块线程是否安全?
如果没有,我应该如何在python中以线程安全的方式复制\ deepcopy可变对象?
答案 0 :(得分:9)
Python的GIL保护字节码,而不是Python语句(参见short或long解释)。因为copy.copy()
和copy.deepcopy()
都是在python中实现的,所以它们肯定不只是一个字节码,所以不,它们不是线程安全的!
如果您必须使用多个线程,并且在很多情况下您应该使用IO专用线程,请执行必须执行的操作 - 使用threading.Lock()
。请注意,您可以use the elegant with statement with the lock object。