@Lan_Vanten

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

Есть
код
from multiprocessing import Pool

def execute(album):
   pool = Pool(processes=8)
   result = pool.map(execute_the_photo, album)
   pool.close()
   pool.join()
   *save to file*

for album in albums:
   execute(album)


Выходит что каждый раз при прогоне первого aka главного цикла процессы создаются и закрываются.
Времени на создание уходит слишком много.

Какие есть варианты, при которых процессы один раз создаются в самом начале обработки, затем обсчитывают данные постоянно, и уже под конец работ, закрываются?
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 2
@deliro
Гугл: "ProcessPoolExecutor python"

Создаёшь пул в начале работы и дело в шляпе
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Попробуйте prefork
www.michurin.net/servers/prefork-server.html

В общем то есть несколько вариантов для сервера

1 поток
2 fork (то что у вас)
3 prefork (создается поток до использования, возможно динамическое управление количеством процессов)
4 thred
5 async
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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