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

मल्टीप्रोसेसिंग.मैनेजर का उपयोग करके एकाधिक प्रक्रियाओं के बीच परिणाम कतार कैसे साझा करें?

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

How to Share a Result Queue Between Multiple Processes Using multiprocessing.Manager?

मल्टीप्रोसेसिंग का उपयोग करके कई प्रक्रियाओं के बीच एक परिणाम कतार साझा करना। प्रबंधक

मल्टीप्रोसेसिंग में, संचार और परिणाम पुनर्प्राप्ति के लिए माता-पिता और बच्चे की प्रक्रियाओं के बीच एक कतार साझा करना आवश्यक है। हालाँकि, एसिंक्रोनस वर्कर प्रक्रियाओं को शुरू करने के लिए apply_async का उपयोग कतारों को साझा करने में चुनौतियाँ पेश करता है।

'क्यू ऑब्जेक्ट्स को केवल इनहेरिटेंस के माध्यम से प्रक्रियाओं के बीच साझा किया जाना चाहिए' त्रुटि को दूर करने के लिए, हम मल्टीप्रोसेसिंग.मैनेजर का उपयोग कर सकते हैं। यह प्रबंधक वर्ग कतारों सहित साझा संसाधनों के निर्माण और प्रबंधन को सक्षम बनाता है।

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

if __name__ == '__main__':
    pool = multiprocessing.Pool(processes=3)
    m = multiprocessing.Manager()
    q = m.Queue()
    workers = pool.apply_async(worker, (33, q))

अब, प्रत्येक वर्कर साझा क्यू ऑब्जेक्ट के साथ इंटरैक्ट कर सकता है और परिणामों को मूल प्रक्रिया में वापस रिपोर्ट कर सकता है। यह दृष्टिकोण apply_async की अतुल्यकालिक प्रकृति को बनाए रखते हुए कुशल और विश्वसनीय परिणाम संचार की अनुमति देता है।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3