python的copy
模块线程安全吗?
如果没有,我应该如何在 python 中以线程安全的方式复制 \deepcopy 可变对象?
python的copy
模块线程安全吗?
如果没有,我应该如何在 python 中以线程安全的方式复制 \deepcopy 可变对象?
Python 的GIL保护字节码,而不是 Python 语句(参见简短或详细的解释)。由于copy.copy()
和copy.deepcopy()
都是在 python 中实现的,它们肯定不仅仅是一个字节码,所以不,它们不是线程安全的!
如果您必须使用多个线程,并且在很多情况下您应该使用 IO 专用线程,那么就做必须做的事情 - 使用threading.Lock()
. 请注意,您可以将优雅的 with 语句与 lock 对象一起使用。