Non, vous ne le faites pas, mais c'est probablement une bonne idée si vous n'allez plus utiliser la piscine.
Raisons d'appeler pool.close
ou pool.join
sont bien dites par Tim Peters dans cet article SO :
Quant à Pool.close (), vous devriez l'appeler quand - et seulement quand - vous n'allez jamais soumettre plus de travail à l'instance de Pool. Ainsi, Pool.close () est généralement appelé lorsque la partie parallélisable de votre programme principal est terminée. Ensuite, les processus de travail prendront fin lorsque tout le travail déjà attribué sera terminé.
C'est également une excellente pratique d'appeler Pool.join () pour attendre la fin des processus de travail. Entre autres raisons, il n'y a souvent pas de bon moyen de signaler les exceptions dans du code parallélisé (les exceptions se produisent dans un contexte vaguement lié à ce que fait votre programme principal), et Pool.join () fournit un point de synchronisation qui peut signaler certaines exceptions qui se sont produites dans des processus de travail que vous ne verriez jamais autrement.
pool.join()
alorspool.close()
une fois que je l' ai commencé tous les fils de la piscine, mais je ne l' ai pas essayé d' utiliserpool.imap_unordered()
comme itérables.