Задать вопрос
@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
  • Вопрос задан
  • 84 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
FeNUMe
@FeNUMe
join()
Wait for the worker processes to exit. One must call close() or terminate() before using join().


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

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

Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 250 000 ₽
AST Москва
До 350 000 ₽
Wanted. Москва
До 250 000 ₽
14 янв. 2025, в 03:39
20000 руб./за проект
14 янв. 2025, в 03:33
3500 руб./за проект
14 янв. 2025, в 00:52
100 руб./за проект