Ні, ні, але це, мабуть, гарна ідея, якщо ви більше не збираєтесь користуватися басейном.
Причини дзвінка pool.close
або pool.join
добре сказані Тімом Пітерсом у цій публікації SO :
Що стосується Pool.close (), ви повинні викликати це, коли - і лише коли - ви ніколи не збираєтеся подавати більше роботи до екземпляра Pool. Отже, Pool.close (), як правило, викликається, коли паралелізується частина вашої основної програми закінчена. Тоді робочі процеси припиняться, коли завершиться вся вже призначена робота.
Також чудова практика - зателефонувати Pool.join (), щоб дочекатися завершення робочих процесів. Серед інших причин, часто немає хорошого способу повідомити про винятки в паралелізованому коді (винятки трапляються в контексті, який лише неясно пов'язаний з тим, що робить ваша основна програма), а Pool.join () забезпечує точку синхронізації, яка може повідомляти про деякі винятки, що мали місце у робочих процесах, яких ви б ніколи не бачили.
pool.join()
тоді,pool.close()
як тільки я запустив усі потоки пулу, але я не намагався використовуватиpool.imap_unordered()
як ітерабельний.