multiprocessing
モジュールのドキュメントには、multiprocessing.Process
で始まるプロセスにキューを渡す方法が示されています。しかし、どのようにしてapply_async
で始まる非同期ワーカープロセスとキューを共有できますか?私は、動的結合や何か他のものは必要ありません。従業員が(繰り返し)結果をベースに戻すための方法です。 RuntimeError: Queue objects should only be shared between processes through inheritance
:複数のプロセス間で結果キューを共有する
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))
これがで失敗します。 私はこれが何を意味しているのかを理解しています。酸洗い(またはすべての特別なWindowsの制限事項)を必要とするのではなく、継承することを理解しています。しかし、どのようにdo私は動作するようにキューを渡す?私は例を見つけることができません、私は様々な方法で失敗したいくつかの選択肢を試しました。助けてください?
これは、ありがとう!私の元のコードで非同期呼び出しに無関係な問題がありましたので、私はあなたの答えにも修正をコピーしました。 – alexis