@AlessandrIT

Как скрипту дождаться окончания работы подпроцессов и только затем продолжить работу?

Итак, суть.

Есть некоторый код, где сначала подготавливается список photos_list и дальше следует его обработка функцией execute_the_photo()
код
pool = Pool(processes=4)
	masks = pool.map(execute_the_photo, photos_list)


Затем над списком masks происходят манипуляции.

Проблема в том что pool.map не дожидается завершения работы всех процессов.Код идёт дальше и начинает обработку списка masks до того как он будет заполнен полностью.

При добавлении pool.join() сразу после pool.map ловлю ошибку
File "D:\***\1.py", line 194, in execute_the_profile
    pool.join()
File "C:\Program Files\Python36\lib\multiprocessing\pool.py", line 545, in join
    assert self._state in (CLOSE, TERMINATE)
AssertionError
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
FeNUMe
@FeNUMe
join()
Wait for the worker processes to exit. One must call close() or terminate() before using join().


Вызовите pool.close() перед pool.join()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы