मल्टीप्रोसेसिंग में, संचार और परिणाम पुनर्प्राप्ति के लिए माता-पिता और बच्चे की प्रक्रियाओं के बीच एक कतार साझा करना आवश्यक है। हालाँकि, एसिंक्रोनस वर्कर प्रक्रियाओं को शुरू करने के लिए 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 की अतुल्यकालिक प्रकृति को बनाए रखते हुए कुशल और विश्वसनीय परिणाम संचार की अनुमति देता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3