मुझे लगता है कि "उपयोगकर्ता-स्थान धागे" से आपका मतलब है (उदाहरण के लिए) गो के goroutines।
यह सच है कि समरूपता के लिए गोरौटाइन का उपयोग ओएस धागे को कार्य इकाइयों को निर्दिष्ट करने के लिए एक विशेष उद्देश्य एल्गोरिदम डिजाइन (हाथ से और वैज्ञानिक गणना द्वारा) से कम कुशल है।
हालांकि: हर गो कार्यक्रम पर्यावरण में स्थित है और किसी विशेष समस्या को हल करने के लिए डिज़ाइन किया गया है। पर्यावरण के लिए गो कार्यक्रम में हर अनुरोध के लिए एक नया गोरौटाइन शुरू किया जा सकता है। यदि पर्यावरण गो कार्यक्रम के लिए समवर्ती अनुरोध कर रहा है, तो गोराउटिन का उपयोग कर एक गो प्रोग्राम एक सीरियल प्रोग्राम से तेज़ी से दौड़ने में सक्षम हो सकता है भले ही गो प्रोग्राम केवल 1 ओएस थ्रेड का उपयोग कर रहा हो। कारण है कि goroutines अधिक गति के साथ अनुरोधों को संसाधित करने में सक्षम हो सकता है (यहां तक कि केवल 1 ओएस थ्रेड का उपयोग करते समय) यह है कि गो प्रोग्राम स्वचालित रूप से गोरौटाइन ए से गोरौटाइन बी में स्विच हो जाएगा जब ए के साथ जुड़े पर्यावरण का हिस्सा क्षणिक रूप से असमर्थ है जवाब देते हैं।
लेकिन हाँ, यह सच है कि goroutines का उपयोग करने और उन्हें स्वचालित रूप से एकाधिक ओएस धागे को बताए (हाथ से और वैज्ञानिक गणना से) ओएस धागे के काम इकाइयों असाइन करने के लिए एक विशेष उद्देश्य एल्गोरिथ्म डिजाइन करने की तुलना में कम कुशल है।
स्रोत
2011-11-09 09:59:10
अच्छा, यह पुष्टि करता है कि यदि आप पूरी तरह से उपयोगकर्ता-स्थान धागे पर भरोसा करते हैं, तो आप एकाधिक कोर का लाभ नहीं उठा सकते हैं। यह सिर्फ इतना है कि मुझे यकीन था कि मैंने पढ़ा है कि गो यूजर-स्पेस थ्रेड्स कहीं भी इस्तेमाल किया गया है, जो गलत है (क्योंकि गोरौटाइन वर्तमान में पीथ्रेड का उपयोग करके कार्यान्वित किया जाता है)। सुनकर खुशी हुई कि मैं गलत था! –
स्टीफनसी, उन्होंने "तथ्य" शब्द का उपयोग किया हो सकता है, लेकिन वह एक प्रश्न पूछ रहा है, और निश्चित रूप से संभावना है कि उसकी धारणा गलत है। अंतर बनाने के लिए +1। – snarf
सिर्फ दूसरों ने जो कहा है उस पर टिप्पणी करने के लिए ... लिनक्स पर जावा, उदाहरण के लिए: यह जावा थ्रेड के मूल लिनक्स धागे से दस साल से अधिक रहा है। यह पहले ऐसा नहीं था (मुझे इन दिनों याद है) लेकिन, हाँ, यह अब से 10 साल से अधिक रहा है। – SyntaxT3rr0r