Pythonのcopy
モジュールはスレッドセーフですか?
そうでない場合、Pythonでスレッドセーフな方法で可変オブジェクトをコピー\ディープコピーするにはどうすればよいですか?
Pythonのcopy
モジュールはスレッドセーフですか?
そうでない場合、Pythonでスレッドセーフな方法で可変オブジェクトをコピー\ディープコピーするにはどうすればよいですか?
Python のGILは、Python ステートメントではなく、バイトコードを保護します (短い説明または長い説明を参照してください)。copy.copy()
との両方copy.deepcopy()
が Python で実装されているため、これらは単一のバイトコード以上のものであることは間違いありません。スレッド セーフではありません。
複数のスレッドで作業する必要があり、IO 専用スレッドを使用するなど、必要な場合が多い場合は、必要なことを実行してください - を使用しますthreading.Lock()
。lock オブジェクトでエレガントな with ステートメントを使用できることに注意してください。