2011-03-31 32 views
5

Paralel olarak çalıştırmak istediğim bir dizi iş ile bir sıra dolduruyorum ve bunu yapmak için python'un çoklu işlem modülünü kullanın.Python Çoklu işlem kuyruğu

['a', 'b'] 

Neden kuyruğu tüm işlerin doldurulur almıyor: Ben queue.get() aşağıdaki alıyorum ne zaman

import multiprocessing 
from multiprocessing import Queue 
queue = Queue() 
jobs = [['a', 'b'], ['c', 'd']] 
for job in jobs: 
    queue.put(job) 

: Kod aşağıda pasajı?

cevap

13

kuyruk aslında doldurulur geting edilir. Bir nesneyi kuyruğa her koyduğunuzda queue.get() yöntemini çağırmanız gerekir. Yani sadece bir kez daha queue.get() çağırmanız gerekiyor.

>>> import multiprocessing 
>>> from multiprocessing import Queue 
>>> queue = Queue() 
>>> jobs = [['a', 'b'], ['c', 'd']] 
>>> for job in jobs: 
    queue.put(job) 


>>> queue.get() 
['a', 'b'] 
>>> queue.get() 
['c', 'd'] 
+0

aah..i şimdi anladım .. teşekkürler !!! –

+0

Rica ederim. –

12

Sıra tüm işlerinizle dolduruluyor. queue.get()

kaldırın ve kuyruğundan bir öğe dönecektir.

bir öğe tekil olduğunu. Kuyruğu boşaltmak istiyorsanız, .get()'u bir döngüye koyun, ancak Empty istisnasını yakaladığınızdan emin olun.

+3

Bu neden reddedildi? Kafam karıştı.. –

İlgili konular