Нет, нет, но, вероятно, это хорошая идея, если вы больше не собираетесь использовать бассейн.
Причины звонка, pool.close
или pool.join
они хорошо сказаны Тимом Питерсом в этом сообщении SO :
Что касается Pool.close (), вы должны вызывать его тогда и только тогда, когда вы никогда не собираетесь отправлять больше работы экземпляру Pool. Поэтому Pool.close () обычно вызывается, когда распараллеливаемая часть вашей основной программы завершена. Затем рабочие процессы завершатся, когда вся уже назначенная работа будет завершена.
Также отличной практикой является вызов Pool.join () для ожидания завершения рабочих процессов. Среди других причин часто нет хорошего способа сообщить об исключениях в распараллеленном коде (исключения возникают в контексте, который лишь отдаленно связан с тем, что делает ваша основная программа), а Pool.join () предоставляет точку синхронизации, которая может сообщать о некоторых произошедших исключениях. в рабочих процессах, которые вы иначе никогда бы не увидели.
pool.join()
после того,pool.close()
как запустил все потоки пула, но я не пробовал использовать егоpool.imap_unordered()
в качестве итеративного.