मुझे एक थ्रेड मिला है जो हार्डवेयर का एक टुकड़ा मतदान कर रहा है।एक थ्रेडिंग कैसे करता है। पाइथन में इसके बाकी क्वांटम पैदा करें?
while not hardware_is_ready():
pass
process_data_from_hardware()
लेकिन अन्य धागे (और प्रक्रियाएं!) हैं जिनके पास चीजें हो सकती हैं। यदि ऐसा है, तो मैं हार्डवेयर को हर दूसरे निर्देश की जांच करने के लिए सीपीयू को जलाना नहीं चाहता हूं। यह थोड़ी देर के बाद से मैंने थ्रेडिंग के साथ निपटाया है, और जब मैंने इसे पायथन नहीं किया था, लेकिन मेरा मानना है कि अधिकांश थ्रेडिंग लाइब्रेरीज़ में yield
फ़ंक्शन या कुछ ऐसा होता है जो थ्रेड को शेड्यूलर को बताने की अनुमति देता है "अन्य धागे को मौका दें। "
while not hardware_is_ready():
threading.yield() # This function doesn't exist.
process_data_from_hardware()
लेकिन मुझे थ्रेडिंग दस्तावेज़ में इस तरह के किसी भी संदर्भ का कोई संदर्भ नहीं मिल रहा है। पायथन में yield
कथन है, लेकिन मुझे पूरा यकीन है कि पूरी तरह से कुछ और है (जेनरेटर के साथ करने के लिए)।
यहां करने के लिए सही चीज़ क्या है?
क्या यह कहीं दस्तावेज है? मैंने सोचा कि यह सच हो सकता है - मैंने इसे अन्य भाषाओं में देखा है - लेकिन मुझे पाइथन दस्तावेज़ों में इसका उल्लेख नहीं मिला। उदाहरण के लिए –
, http://docs.python.org/library/sched.html "अन्य घटनाओं को बहु-थ्रेडेड अनुप्रयोगों में चलाने का मौका देने के लिए प्रत्येक ईवेंट चलाने के बाद देरीफनक को तर्क 0 के साथ भी बुलाया जाएगा।" (delayfunc आमतौर पर समय है। यहाँ सो जाओ)। मैं मानता हूं कि यह अच्छा होगा अगर इसे मॉड्यूल समय में अधिक प्रत्यक्ष रूप से दस्तावेज किया गया था ;-) –
अच्छी तरह छिपा हुआ! धन्यवाद! –