मुझे अतुल्यकालिक रूप से एक अलग धागे में तार भेजने की आवश्यकता है (जिसका अर्थ है कि कोई नहीं जानता कि कब)। मैं threading का उपयोग कर रहा हूं क्योंकि मेरी समस्या आईओ बाध्य है।

मेरी वर्तमान सबसे अच्छी शर्त है फ्लैग सेट करें और रिसीवर रखें थ्रेड पोल कि। जब यह एक सेट फ्लैग का पता लगाता है तो यह कुछ साझा मेमोरी से पढ़ता है।

यह सुनने में बड़ा जटिल लगता है। क्या मैं मेलबॉक्स के माध्यम से संदेश नहीं भेज सकता? या कुछ और भी बेहतर निहित चर शब्दार्थ की तरह?

-1
Vorac 27 नवम्बर 2021, 06:31

1 उत्तर

सबसे बढ़िया उत्तर

queue.Queue वर्ग इसके लिए आदर्श है। आपका धागा या तो इनपुट की प्रतीक्षा को रोक सकता है, या यह जांच सकता है कि क्या कुछ नया आया है, और यह थ्रेड-सुरक्षित है।

1
Tim Roberts 27 नवम्बर 2021, 06:35
मैंने इसे इस या एक पाइप तक सीमित कर दिया है। क्या आप कृपया तर्क दे सकते हैं कि एक कतार श्रेष्ठ क्यों है? शायद पाइप ब्लॉक नहीं करते?
 – 
Vorac
27 नवम्बर 2021, 06:49
1
पाइप सॉकेट पर आधारित होते हैं। आप बस एक बाइट या कैरेक्टर स्ट्रीम भेजें। इसका मतलब है कि यदि आप वस्तुओं को भेज रहे हैं, तो आपको उन्हें क्रमबद्ध करना होगा, और दूसरे छोर पर deserialize करना होगा। एक कतार के साथ, आप बिना एन्कोडिंग और डिकोडिंग के पायथन ऑब्जेक्ट भेज सकते हैं।
 – 
Tim Roberts
27 नवम्बर 2021, 07:11
अंतिम नाइटपिक multiprocessing.Queue या queue.Queue?
 – 
Vorac
27 नवम्बर 2021, 07:23