शीर्षक थोड़ा अस्पष्ट हो सकता है। मेरा यही मतलब है:हास्केल में दो इनपुटों की प्रतीक्षा, साथ ही
कहें कि मेरे पास मेरे प्रोग्राम में इनपुट प्राप्त करने के दो तरीके हैं। पहला, कीबोर्ड getLine
का उपयोग करके कुंजीपटल के माध्यम से होता है जो लाइन को पढ़े जाने तक ब्लॉक करता है। दूसरा, TChan
के माध्यम से कहता है, जहां readTChan chan
का उपयोग करके एक ब्लॉक में परिणाम होगा जब तक कि चैनल में कोई मान मौजूद न हो, जहां इसे पढ़ा जाएगा।
जो मैं पूरा करना चाहता हूं वह दोनों मानों का उपयोग कर एक थ्रेड का उपयोग करके और मेरे सीपीयू को 100% तक पहुंचने की अनुमति नहीं दे रहा है। पल दो मानों में से एक उपलब्ध है, यह प्राप्त किया जाता है और कार्यक्रम फिर से शुरू होता है। (Either
का उपयोग करके सूचित करें कि दो मानों में से कौन सा मूल्य प्राप्त हुआ था।)
क्या यह संभव है?
बहुत बहुत धन्यवाद!
कैसे एक आईओ-धागा कॉल getLine होने, और साथ ही Tchan में उसके परिणाम डाल के बारे में? मुझे लगता है जैसे यह काम करना चाहिए .. – yairchu
आप एक धागे का उपयोग क्यों करना चाहते हैं? क्या होगा, उदाहरण के लिए, आप 3 इनपुट के लिए इंतजार करना चाहते हैं? या 5? या 10? मनमानी प्रतिबंध क्यों? – ADEpt
मुझे लगता है कि आपके पास कुछ कोड है जहां एकाधिक धागे उपयोग में थे और आपके पास 100% CPU था? आप कोड पोस्ट करना चाहते हैं ताकि अन्य लोग देख सकें कि क्यों: सही समाधान धागे है और यह केवल एक कार्यान्वयन समस्या हो सकती है। – Godeke