Постоянные процессы публикуют пул Python

У меня есть программа Python, выполнение которой занимает около 10 минут. Поэтому я использую Pool из multiprocessing , чтобы ускорить процесс:

from multiprocessing import Pool
p = Pool(processes = 6) # I have an 8 thread processor
results = p.map( function, argument_list ) # distributes work over 6 processes!

Он работает намного быстрее, только благодаря этому. Дай бог здоровья Python! И вот я подумал, что так и будет.

Однако я заметил, что каждый раз, когда я это делаю, процессы и их состояние значительного размера остаются, даже когда p выходит за рамки; по сути, я создал утечку памяти. Процессы отображаются в моем приложении системного монитора как процессы Python, которые на данный момент не используют ЦП, но имеют значительный объем памяти для поддержания своего состояния.

Пул имеет функции close , terminate и join , и я предполагаю, что одна из них убьет процессы. Кто-нибудь знает, как лучше всего сообщить моему пулу p , что я закончил с ним?

Большое спасибо за вашу помощь!

5
задан user 16 January 2012 в 19:26
поделиться