multiprocessing
Modül belgeleri, bir kuyruğun başlatılan bir işleme nasıl geçirileceğini gösterir multiprocessing.Process
. Ancak bir kuyruğu, başlatılan zaman uyumsuz çalışan işlemlerle nasıl paylaşabilirim apply_async
? Dinamik birleşmeye veya başka bir şeye ihtiyacım yok, sadece çalışanların sonuçlarını (tekrar tekrar) üsse geri bildirmeleri için bir yol.
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))
Bu başarısız:
RuntimeError: Queue objects should only be shared between processes through inheritance
. Bunun ne anlama geldiğini anlıyorum ve dekapaj / çözme (ve tüm özel Windows kısıtlamalarını) gerektirmektense miras alma tavsiyesini anlıyorum. Ama nasıl yok ben eserler bir şekilde kuyruğu geçmesi? Bir örnek bulamıyorum ve çeşitli şekillerde başarısız olan birkaç alternatif denedim. Yardım lütfen?