2013-06-26 27 views

回答

7

Python的GIL保護字節碼,而不是Python語句(請參閱shortlonglong說明)。由於copy.copy()copy.deepcopy()都是在python中實現的,所以它們肯定比單個字節碼多,所以不行,它們不是線程安全的!

如果您必須使用多個線程,並且有很多情況下您應該(例如具有IO專用線程),請執行必須完成的操作 - 使用threading.Lock()。注意你可以use the elegant with statement with the lock object