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

मल्टीप्रोसेसिंग का उपयोग करके पायथन में प्रक्रियाओं के बीच लॉक कैसे साझा करें

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

How to Share a Lock Between Processes in Python Using Multiprocessing

पायथन में प्रक्रियाओं के बीच एक लॉक साझा करना

लॉक() ऑब्जेक्ट सहित कई पैरामीटर वाले फ़ंक्शन को लक्षित करने के लिए पूल.मैप() का उपयोग करने का प्रयास करते समय, यह है उपप्रक्रियाओं के बीच लॉक साझा करने के मुद्दे को संबोधित करने के लिए महत्वपूर्ण है। अचार बनाने की सीमाओं के कारण पारंपरिक मल्टीप्रोसेसिंग.लॉक() को सीधे पूल विधियों में पारित नहीं किया जा सकता है।

विकल्प 1: प्रबंधक और प्रबंधक का उपयोग करना।लॉक()

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

यहां विकल्प 2 का उपयोग करके एक उदाहरण दिया गया है:

def target(iterable_item): आइटम में आइटम के लिए: # बढ़िया चीजें करो यदि (...यहाँ कुछ शर्त...): लॉक.अधिग्रहण() # stdout या logfile आदि पर लिखें। लॉक.रिलीज़() def init(एल): वैश्विक ताला ताला = एल डीईएफ़ मुख्य(): पुनरावर्तनीय = [1, 2, 3, 4, 5] एल = मल्टीप्रोसेसिंग.लॉक() पूल = मल्टीप्रोसेसिंग.पूल(इनिशियलाइज़र=इनिट, इनिटार्ग्स=(एल,)) पूल.मैप(लक्ष्य, पुनरावर्तनीय) पूल.बंद करें() पूल.जॉइन()

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

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

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

Copyright© 2022 湘ICP备2022001581号-3