Teilen einer Ergebniswarteschlange zwischen mehreren Prozessen

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

Die Dokumentation für das Modul multiprocessing zeigt, wie eine Warteschlange an einen Prozess übergeben wird, der mit multiprocessing.Process gestartet wurde. Aber wie kann ich eine Warteschlange mit asynchronen Arbeitsprozessen teilen, die mit apply_async gestartet wurden? Ich brauche kein dynamisches Joining oder irgendetwas anderes, nur eine Möglichkeit für die Worker, ihre Ergebnisse (wiederholt) an die Basis zu melden.

import multiprocessing def worker(name, que): que. put("%d is done" % name) if __name__ == "__main__": pool = multiprocessing.Pool(processes=3) q = multiprocessing.Queue() worker = pool.apply_async(worker, (33, q)) 

Dies schlägt fehl mit: Laufzeitfehler: Queue-Objekte sollten nur durch Vererbung zwischen Prozessen geteilt werden Ich verstehe, was das bedeutet, und ich verstehe den Rat, eher zu erben als erfordert Pickling/Unpickling (und all die speziellen Windows-Einschränkungen). Aber wie übergebe ich die Warteschlange so, dass es funktioniert? Ich kann kein Beispiel finden und habe mehrere Alternativen ausprobiert, die fehlgeschlagen sind auf verschiedene Weise. Hilfe bitte?