Een resultatenwachtrij delen tussen verschillende processen

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

De documentatie voor de module multiprocessing laat zien hoe u een wachtrij kunt doorgeven aan een proces dat is gestart met multiprocessing.Process. Maar hoe kan ik een wachtrij delen met asynchrone werkprocessen die zijn gestart met apply_async? Ik heb geen dynamische samenvoeging of iets anders nodig, alleen een manier voor de werkers om (herhaaldelijk) hun resultaten terug te rapporteren aan de basis.

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

Dit mislukt met: RuntimeError: Queue-objecten mogen alleen worden gedeeld tussen processen via overerving. Ik begrijp wat dit betekent en ik begrijp het advies om te overnemen in plaats van vereisen beitsen/ontbeitsen (en alle speciale Windows-beperkingen). Maar hoe doe ik de wachtrij op een manier die werkt? Ik kan geen voorbeeld vinden en ik heb verschillende alternatieven geprobeerd die niet werkten op verschillende manieren. Help alstublieft?