ubuntu 13.04
Помогите разобраться в причине возникновения дедлока.
Есть одна очередь, в нее пишут по 1000 объектов два процесса. Оба процесса завершают писать в очередь но висят как живые. Подскажите в чем причина?
from multiprocessing import Process, Queue, current_process from time import sleep #проверяю есть ли в списке живые процессы def is_alive(processes): for process in processes: if process.is_alive(): return True #пишу в очередь def worker_write(q): for i in xrange(1000): q.put({"key1": 'test', 'key2': 'test', 'key3': 'test'}) print(current_process().name + ' -> End.') raw = Queue() pr = [] for i in xrange(2): process = Process(target=worker_write, args=(raw,)) process.start() pr.append(process) while is_alive(pr): sleep(1)