पायथन प्रक्रियाओं के बीच ताले साझा करना
जब कई प्रक्रियाओं के बीच लॉक का उपयोग करने का प्रयास किया जाता है, तो आपको त्रुटि का सामना करना पड़ सकता है, "केवल ऑब्जेक्ट को लॉक करना चाहिए विरासत के माध्यम से प्रक्रियाओं के बीच साझा किया जाना चाहिए। मैनेजर ऑब्जेक्ट और मल्टीप्रोसेसिंग आयात मैनेजर से एक मैनेजर.लॉक():
पास करना ... एम = प्रबंधक() l = m.Lock()
हालाँकि, प्रबंधक का उपयोग करना, प्रबंधक सर्वर को होस्ट करने और IPC के माध्यम से संचार करने के लिए एक अतिरिक्त प्रक्रिया की आवश्यकता का परिचय देता है।
पूल में लॉक पास करना निर्माणfrom multiprocessing import Manager ... m = Manager() l = m.Lock()
def init(l): वैश्विक ताला ताला = एल एल = मल्टीप्रोसेसिंग.लॉक() पूल = मल्टीप्रोसेसिंग.पूल(इनिशियलाइज़र=इनिट, इनिटार्ग्स=(एल,))
यह विधि सभी बाल श्रमिकों में लॉक इंस्टेंस को वैश्विक बनाती है। ध्यान दें कि यह दृष्टिकोण आंशिक फ़ंक्शन की आवश्यकता को समाप्त कर देता है।इन तकनीकों में से एक को नियोजित करके, आप पायथन प्रक्रियाओं के बीच प्रभावी ढंग से लॉक साझा कर सकते हैं, जिससे साझा संसाधनों तक समन्वित पहुंच की अनुमति मिलती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3