ไม่คุณไม่ทำ แต่อาจเป็นความคิดที่ดีหากคุณจะไม่ใช้สระว่ายน้ำอีกต่อไป
เหตุผลในการโทรpool.close
หรือpool.join
พูดได้ดีโดย Tim Peters ในโพสต์ SO นี้ :
สำหรับ Pool.close () คุณควรเรียกสิ่งนั้นว่าเมื่อไรและต่อเมื่อคุณจะไม่ส่งงานไปยังอินสแตนซ์ Pool อีก โดยทั่วไปแล้ว Pool.close () จะถูกเรียกเมื่อส่วนที่ขนานกันได้ของโปรแกรมหลักของคุณเสร็จสิ้น จากนั้นกระบวนการของผู้ปฏิบัติงานจะสิ้นสุดลงเมื่องานทั้งหมดที่ได้รับมอบหมายเสร็จสิ้นแล้ว
นอกจากนี้ยังควรเรียก Pool.join () เพื่อรอให้กระบวนการของผู้ปฏิบัติงานยุติลง ด้วยเหตุผลอื่น ๆ มักไม่มีวิธีที่ดีในการรายงานข้อยกเว้นในโค้ดคู่ขนาน (ข้อยกเว้นเกิดขึ้นในบริบทที่เกี่ยวข้องกับสิ่งที่โปรแกรมหลักของคุณกำลังทำอย่างคลุมเครือเท่านั้น) และ Pool.join () มีจุดซิงโครไนซ์ที่สามารถรายงานข้อยกเว้นบางประการที่เกิดขึ้น ในกระบวนการทำงานที่คุณไม่เคยเห็น
pool.join()
แล้วpool.close()
เมื่อฉันได้เริ่มต้นทั้งหมดของหัวข้อสระว่ายน้ำ แต่ฉันไม่ได้พยายามใช้pool.imap_unordered()
เป็น iterable