Через некоторое время я наконец-то нашел решение: во время выбора состояния программы возникает тупик, чтобы отправить ее на разные процессоры.Я не совсем уверен в причине, но, изучая исходный код, выглядело так, как будто генерируются новые потоки, чтобы засечь объекты, и именно эти потоки вызывают тупик.
Как только процессы сгенерированы, они работают нормально: ручное создание процессов через библиотеку multiprocessing
решает проблему.
В качестве альтернативы, вы можете использовать multiprocessing.Pool
, задав вручную start_method
:
from multiprocessing import get_context()
if __name__ == '__main__':
with get_context("spawn").Pool() as pool:
...
Вы можете свободно выбирать spawn
или forkserver
как start_method
.
Посетите эту страницу , если вам нужна дополнительная информация.