नहीं, तुम नहीं, लेकिन यह शायद एक अच्छा विचार है अगर आप अब पूल का उपयोग नहीं करने जा रहे हैं।
इस एसओ पोस्ट में टिम पीटर्स द्वारा कॉल करने pool.close
या कहने के कारण pool.join
अच्छे हैं :
जैसा कि Pool.close () में, आपको कॉल करना चाहिए कि कब - और केवल तभी - जब आप पूल के उदाहरण में अधिक कार्य सबमिट करने वाले नहीं हैं। इसलिए पूल.क्लोज () को आम तौर पर तब कहा जाता है जब आपके मुख्य कार्यक्रम का समानांतर भाग समाप्त हो जाता है। तब कार्यकर्ता प्रक्रियाएं समाप्त हो जाएंगी जब पहले से ही सौंपे गए सभी काम पूरे हो चुके हैं।
पूल प्रक्रिया () को समाप्त करने के लिए कार्यकर्ता प्रक्रियाओं की प्रतीक्षा करना भी उत्कृष्ट अभ्यास है। अन्य कारणों के अलावा, समानांतर कोड में अपवादों को रिपोर्ट करने का कोई अच्छा तरीका नहीं है (अपवाद केवल एक संदर्भ में होता है जो केवल आपके मुख्य कार्यक्रम से संबंधित है), और Pool.join () एक सिंक्रनाइज़ेशन बिंदु प्रदान करता है जो कुछ अपवादों की रिपोर्ट कर सकता है। कार्यकर्ता प्रक्रियाओं में जो आप अन्यथा कभी नहीं देखेंगे।
pool.join()
तोpool.close()
एक बार मैं पूल धागे के सभी शुरू कर दिया है, लेकिन मैं उपयोग करने की कोशिश नहीं की हैpool.imap_unordered()
एक iterable के रूप में।