есть ли причина, по которой класс очереди в многопроцессорном модуле python зависает - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть программа, которая использует многопроцессорную библиотеку для порождения процессов, которые по-разному выполняют тяжелые вычисления и возвращают результаты, которые я пытался собрать с помощью очереди, проблема в том, что процессы запускаются, но очередь работает вечно, и мне приходится заканчивать это сам. что может быть причиной этого. Примером является

from multiprocessing import Process, Queue
from postman import scion

def rez(vix):
    vix += 1

if __name__ == '__main__':
    #some preliminary computations gets done here
    qout = Queue()
    proc = [Process(target=scion, args=(v, basket, qout)) for v in state]

    for p in proc:
        p.start()

    for p in proc:
        comcon = qout.get()
        rez(comcon)

    for p in proc:
        p.join()

1 Ответ

0 голосов
/ 29 апреля 2020

Позже я узнал, что это проблема Windows и тот факт, что spyder использует живой интерпретатор. Решение состояло в том, чтобы запустить программу из командной строки, которую она выполнила безупречно. Этот пост помог мне получить эту информацию, на случай, если кто-нибудь столкнется с той же проблемой. сообщение stackoverflow

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...