複数のプロセス間で結果キューを共有する

| | | | | | | | | | | | | |

multiprocessing モジュールのドキュメントには、 multiprocessing.Processで開始されたプロセスにキューを渡す方法が示されています。しかし、 apply_async で開始された非同期ワーカープロセスとキューを共有するにはどうすればよいですか?動的結合などは必要ありません。ワーカーが(繰り返し)結果をベースに報告するための方法です。

  import multiprocessing def worker(name、que):que。 put( "%d is done"%name)if __name__ == "__main __":pool = multiprocessing.Pool(processes = 3)q = multiprocessing.Queue()workers = pool.apply_async(worker、(33、q))  

これは次の場合に失敗します: RuntimeError:キューオブジェクトは継承を通じてプロセス間でのみ共有する必要があります。これが何を意味するのか理解しており、継承するのではなく継承するためのアドバイスを理解していますピクリング/アンピクリング(およびすべての特別なWindows制限)が必要です。しかし、どのように 動作する方法でキューを渡すのですか?例が見つからず、失敗したいくつかの代替案を試しましたさまざまな方法で。助けてください。