Я пытаюсь использовать очередь с библиотекой многопроцессорности в Python. После выполнения кода ниже (операторы печати работают), но процессы не завершаются после того, как я вызываю соединение в очереди, и все еще живы. Как я могу завершить оставшиеся процессы?
Спасибо!
def MultiprocessTest(self):
print "Starting multiprocess."
print "Number of CPUs",multiprocessing.cpu_count()
num_procs = 4
def do_work(message):
print "work",message ,"completed"
def worker():
while True:
item = q.get()
do_work(item)
q.task_done()
q = multiprocessing.JoinableQueue()
for i in range(num_procs):
p = multiprocessing.Process(target=worker)
p.daemon = True
p.start()
source = ['hi','there','how','are','you','doing']
for item in source:
q.put(item)
print "q close"
q.join()
#q.close()
print "Finished everything...."
print "num active children:",multiprocessing.active_children()