मैं दो धारावाहिक बंदरगाहों (/ dev/ttyS1 और/dev/ttyS2) पढ़ने के लिए समांतर प्रसंस्करण/थ्रेडिंग का उपयोग कर एक अजगर वर्ग लिखने की कोशिश कर रहा हूं। इन दोनों बंदरगाह 1 9 200 की बॉड दर पर चल रहे हैं और लगातार सक्रिय हैं। मैंने इस उद्देश्य के लिए pySerial का उपयोग किया।सीरियल बंदरगाहों को पढ़ने के लिए पाइथन एकाधिक धागे/एकाधिक प्रक्रियाएं
दोनों पढ़ने के संचालन को निरंतर और समवर्ती रूप से चलाने की आवश्यकता है। मैं सोच रहा हूं कि थ्रेड लाइब्रेरी या थ्रेडिंग लाइब्रेरी या मल्टीप्रोसेसिंग लाइब्रेरी का उपयोग करना चाहिए या नहीं। मैं केवल वैश्विक दुभाषिया ताला के कारण चिंतित हूं जो 'भारी आईओ संचालन के लिए सही थ्रेडिंग क्षमता नहीं देता है। लेकिन यदि वैश्विक दुभाषिया ताला मुझे प्रभावित नहीं करता है तो मैं थ्रेडिंग/थ्रेड मॉड्यूल का उपयोग करूंगा। हालांकि अगर ऐसा होता है तो मुझे पाइथन मल्टीप्रोसेसिंग लाइब्रेरी को संकलित करना होगा क्योंकि यह एक एम्बेडेड सिस्टम पर है।
तो मेरे कोड में आमतौर पर थ्रेड 1 या प्रक्रिया 1 = ttyS1 पढ़ने और पढ़ने वाली रेखाओं पर कुछ स्ट्रिंग संचालन करने के बाद एक बफर को लिखना होगा। thread2 या process2 = ttyS2 को पढ़ने और पढ़ने के लिए कुछ स्ट्रिंग ऑपरेशंस करने के बाद अन्य बफर को लिखना। अन्य कार्य आदि इन बफर का कोड कोड के अन्य भागों द्वारा आगे उपयोग किया जाता है।
क्या पाइथन में मल्टीप्रोसेसिंग में एकाधिक कोर/सीपीयू की आवश्यकता होती है?
पढ़ने के लिए धन्यवाद!
जीआईएल जारी होने के बारे में जानकारी के लिए धन्यवाद। एम्बेडेड सिस्टम बीमार उपयोग arm5tel आर्किटेक्चर के साथ 550 मेगाहट्र्ज सीपीयू पर होगा। मुझे लगता है कि बीमार सिर्फ अलग-अलग सेट अप के साथ कुछ बेंचमार्किंग करना है और देखें कि मैं इससे कितना बाहर निकल सकता हूं। वीडियो बीमार के लिए भी धन्यवाद, इसे देखो! – kal