Không, bạn không cần, nhưng có lẽ là một ý kiến hay nếu bạn không sử dụng hồ bơi nữa.
Lý do kêu gọi pool.close
hoặc pool.join
được Tim Peters nói rõ trong bài đăng SO này :
Đối với Pool.close (), bạn nên gọi nó khi - và chỉ khi - bạn sẽ không bao giờ gửi thêm công việc cho cá thể Pool. Vì vậy, Pool.close () thường được gọi khi phần có thể song song hóa của chương trình chính của bạn kết thúc. Sau đó, các quy trình công nhân sẽ kết thúc khi tất cả công việc được giao đã hoàn thành.
Cách thực hành tuyệt vời là gọi Pool.join () để đợi các quy trình worker kết thúc. Trong số các lý do khác, thường không có cách nào tốt để báo cáo các ngoại lệ trong mã song song (các ngoại lệ xảy ra trong ngữ cảnh chỉ liên quan mơ hồ đến những gì chương trình chính của bạn đang làm) và Pool.join () cung cấp một điểm đồng bộ hóa có thể báo cáo một số ngoại lệ đã xảy ra trong các quy trình công nhân mà bạn sẽ không bao giờ thấy.
pool.join()
sau đópool.close()
khi tôi đã bắt đầu tất cả các luồng hồ bơi, nhưng tôi chưa thử sử dụngpool.imap_unordered()
như một tệp có thể lặp lại.