"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन मल्टीप्रोसेसिंग पूल में कीबोर्ड इंटरप्ट को खूबसूरती से कैसे संभालें?

पायथन मल्टीप्रोसेसिंग पूल में कीबोर्ड इंटरप्ट को खूबसूरती से कैसे संभालें?

2024-11-08 को प्रकाशित
ब्राउज़ करें:114

How to Gracefully Handle Keyboard Interrupts in Python Multiprocessing Pools?

पायथन मल्टीप्रोसेसिंग पूल में कीबोर्ड इंटरप्ट की शानदार हैंडलिंग

पायथन के मल्टीप्रोसेसिंग पूल के साथ काम करते समय, कीबोर्डइंटरप्ट घटनाओं को संभालना हमेशा आसान नहीं होता है। इस लेख में, हम पता लगाएंगे कि इस तरह की रुकावटों को कैसे संभाला जाए और यह सुनिश्चित किया जाए कि प्रक्रियाएं शालीनता से बाहर निकलें।

प्रदान किया गया कोड नमूना चुनौती को प्रदर्शित करता है। कीबोर्डइंटरप्ट के लिए कैच ब्लॉक होने के बावजूद, कंट्रोल-सी दबाने पर यह निष्पादित नहीं होता है। इसके बजाय, प्रोग्राम तब तक लटका रहता है जब तक कि इसे बाहरी रूप से समाप्त नहीं कर दिया जाता।

इस समस्या की जड़ थ्रेडिंग.कंडीशन.वेट() में एक शर्त पर ब्लॉक करने से संबंधित पायथन बग में है। इस संदर्भ में, कीबोर्डइंटरप्ट कभी नहीं भेजा जाता है। परिणामस्वरूप, यह व्यवधान को पूल के भीतर नियंत्रित होने से रोकता है।

इस समस्या का एक समाधान परिणामों की प्रतीक्षा करते समय एक टाइमआउट निर्दिष्ट करना है। टाइमआउट पैरामीटर के साथ मैप_एसिंक () विधि का उपयोग मैप () के बजाय किया जा सकता है। यह दृष्टिकोण कीबोर्डइंटरप्ट को पहचानने और संसाधित करने की अनुमति देता है:

results = pool.map_async(slowly_square, range(40)).get(9999999)

एक बड़ा टाइमआउट मान सेट करके , हम अनिवार्य रूप से पूल को उपयोगकर्ता द्वारा बाधित होने तक परिणामों की प्रतीक्षा जारी रखने के लिए कहते हैं।

यह ध्यान रखना महत्वपूर्ण है कि इस समाधान की कुछ सीमाएँ हैं। यदि सभी कार्य पूर्ण होने से पहले समय समाप्त हो जाता है, तो अपूर्ण परिणाम हटा दिए जाएंगे। इसलिए, एक उचित टाइमआउट मान चुनना महत्वपूर्ण है जो अपूर्ण परिणामों के जोखिम के साथ प्रतिक्रियाशीलता को संतुलित करता है।

विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729576455 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3