Nie, nie możesz, ale to prawdopodobnie dobry pomysł, jeśli nie zamierzasz już korzystać z basenu.
Powody, dla których warto dzwonić pool.close
lub pool.join
są dobrze opisane przez Tima Petersa w tym poście SO :
Jeśli chodzi o Pool.close (), powinieneś wywołać to wtedy, gdy - i tylko wtedy - nigdy nie będziesz przesyłać więcej pracy do instancji Pool. Tak więc Pool.close () jest zwykle wywoływana po zakończeniu pracującej równolegle części programu głównego. Wówczas procesy robocze zostaną zakończone, gdy wszystkie już przypisane prace zostaną zakończone.
Doskonałą praktyką jest również wywołanie metody Pool.join () w celu oczekiwania na zakończenie procesu roboczego. Między innymi często nie ma dobrego sposobu zgłaszania wyjątków w kodzie równoległym (wyjątki występują w kontekście tylko niejasno związanym z tym, co robi twój główny program), a Pool.join () udostępnia punkt synchronizacji, który może zgłosić niektóre wyjątki, które wystąpiły w procesach roboczych, których inaczej nigdy byś nie zobaczył.
pool.join()
wtedypool.close()
po uruchomieniu wszystkich wątków puli, ale nie próbowałem używać gopool.imap_unordered()
jako iterowalnego.