У меня есть проект для моего колледжа по многопроцессорности в python. Для моих проектов на python я использую spyder в windows.Поэтому я пытаюсь запустить очень простой многопроцессорный код в spyder, но каждый раз, когда я запускаю его, консоль spyder зависает и никогда не завершается.Это мой код:
from multiprocessing import Pool, freeze_support
import multiprocessing
def f(i):
return i+1
def main():
pool = multiprocessing.Pool(4)
result = pool.map(f, range(4))
pool.close()
pool.join()
print result
if __name__ == '__main__':
freeze_support() #you need this in windows
main()
Я заметил, что это общая проблема с многопроцессорной обработкой и отсутствием разветвления в окнах, поэтому я принял во внимание пункт 16.6.3.2.Windows в https://docs.python.org/2/library/multiprocessing.html#windows.
Я также избегал печати из моего дочернего процесса, как указано здесь: Простая многопроцессорная функция Python не выводит результаты и вместо этого использует return.
Мой код работает, если я запускаю его с терминала Unix, но я в основном использую Windows для своих проектов на Python.Есть ли решение этой проблемы в Windows?