कई प्रक्रियाओं के बीच परिणाम कतार साझा करना

| | | | | | | | | | | | | |

मल्टीप्रोसेसिंग मॉड्यूल के लिए दस्तावेज़ दिखाता है कि multiprocessing.Process से शुरू हुई प्रक्रिया के लिए क्यू को कैसे पास किया जाए। लेकिन मैं apply_async से शुरू हुई एसिंक्रोनस वर्कर प्रक्रियाओं के साथ एक क्यू कैसे साझा कर सकता हूं? मुझे डायनेमिक जॉइनिंग या किसी और चीज़ की ज़रूरत नहीं है, बस कर्मचारियों के लिए (बार-बार) अपने परिणामों को आधार पर रिपोर्ट करने का एक तरीका है। put ("%d किया जाता है"% नाम) अगर __name__ == "__main__": पूल = मल्टीप्रोसेसिंग। पूल (प्रक्रिया = 3) q = मल्टीप्रोसेसिंग। कतार () कार्यकर्ता = पूल। लागू_एसिंक (कार्यकर्ता, (33, क्यू))

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