8

Pythonのcopyモジュールはスレッドセーフですか?

そうでない場合、Pythonでスレッドセーフな方法で可変オブジェクトをコピー\ディープコピーするにはどうすればよいですか?

4

1 に答える 1

14

Python のGILは、Python ステートメントではなく、バイトコードを保護します (短い説明または長い説明を参照してください)。copy.copy()との両方copy.deepcopy()が Python で実装されているため、これらは単一のバイトコード以上のものであることは間違いありません。スレッド セーフではありません。

複数のスレッドで作業する必要があり、IO 専用スレッドを使用するなど、必要な場合が多い場合は、必要なことを実行してください - を使用しますthreading.Lock()lock オブジェクトでエレガントな with ステートメントを使用できることに注意してください。

于 2013-06-27T09:04:27.853 に答える