Имеется скрипт, с мультипроцессингом и очередями. Проблема довольно таки странная. Вчера код работал. После перезагрузки компьютера перестал. Начал копать в чем трабл, и выяснилось вот что.
Имеется участок вида:
from multiprocessing import Process, Queue q_data = Queue() def Worker(): while not q_data.empty(): #some code print q_data.get() if __name__ == '__main__': for i in xrange(5): q_data.put(i) procs = [] for i in xrange(5): p = Process(target=Worker) p.start procs.append(p) for p in procs: p.join()
Код должен напечать 1,2,3,4,5, по каждой циферке из процесса, но в Woker условие while не проходит, т.к. мне выдает, что очереди пустые. Даже с запуском одного процесса такая же шляпа. И самое интересное, что в “main” очередь не пуста.
В чем может быть проблема?