を再作成しません。このコードは、私は次のような出力が得られます。マルチプロセッシングは、私は少しのコードスニペット(元のコードがはるかに大きい)オブジェクトを作成する関数を呼び出しますが、プロセスのプール内に作成したオブジェクト
PoolWorker-1, Address: <__main__.TestClass object at 0x7f05d3fdad50>
PoolWorker-2, Address: <__main__.TestClass object at 0x7f05d3fdad50>
オブジェクトが同じアドレスを持っている理由私は理解していないがインクルードは別のプロセスであるにも関わらず、ありますか?
すべてのプロセスが独自のオブジェクトを作成する方法を確認するにはどうすればよいですか?
ありがとうございました。
私はあなたのコードを実行しました。アドレスは依然として同じである(またはそれが予想される)として、結果は、私ビットパズル: 'PoolWorker-1 <__メイン__ 0x7ffecd3c8d90にTestClassを対象> PoolWorker-2 <__メイン__ TestClassをオブジェクト0x7ffecd3c8d90で> PoolWorker -1 <__ main __。TestClassオブジェクト(0x7ffecd3c8d90)> PoolWorker-2 <__ main __。TestClassオブジェクト(0x7ffecd3c8d90)> ' – user1852692
アドレスは仮想アドレッシングによって同じになると予想されます。マルチプロセッシングのためにプログラムをクローンすると、仮想アドレスは変更されませんが、基本となる物理メモリは変わりません。 – lunixbochs