जैसा कि मैंने शीर्षक में लिखा था, मैं जानना चाहता हूं कि सी ++ स्टैंटर्ड धागे उपयोगकर्ता या कर्नेल स्पेस में प्रबंधित हैं या नहीं।std :: धागे उपयोगकर्ता या कर्नेल स्पेस में प्रबंधित होते हैं?
धन्यवाद।
जैसा कि मैंने शीर्षक में लिखा था, मैं जानना चाहता हूं कि सी ++ स्टैंटर्ड धागे उपयोगकर्ता या कर्नेल स्पेस में प्रबंधित हैं या नहीं।std :: धागे उपयोगकर्ता या कर्नेल स्पेस में प्रबंधित होते हैं?
धन्यवाद।
जैसा कि लगभग हमेशा होता है, मानक किसी विशेष कार्यान्वयन को अनिवार्य नहीं करता है, केवल यह आवश्यक है कि प्रदर्शित व्यवहार इसके नियमों के अनुरूप हो।
इस प्रकार, विशेष कार्यान्वयन चुनने के लिए स्वतंत्र है; दूसरी ओर, शायद कई कार्यान्वयन boost.thread पर आधारित होंगे (जिस पर std::thread
प्रस्ताव आधारित है), इसलिए हम इसे एक विचार के लिए देख सकते हैं।
यह पुस्तकालय Win32 पर POSIX और Windows थ्रेड पर pthreads का उपयोग करता है। Win32 थ्रेड निश्चित रूप से कर्नेल थ्रेड्स हैं, लेकिन अपने स्वयं के पर अभी तक एक और इंटरफ़ेस पर pthreads हैं, जो उपयोगकर्ता स्थान और कर्नेल स्पेस में लागू किए जा सकते हैं (हालांकि लगभग हाल ही में यूनिक्स कर्नेल उन्हें कर्नेल स्पेस में लागू करने के लिए सुविधाएं प्रदान करता है) ।
तो: std::thread
कुछ भी हो सकता है, हालांकि, "मुख्यधारा" पीसी ऑपरेटिंग सिस्टम/कार्यान्वयन पर, यह बहुत संभावना है कि आपको कर्नेल थ्रेड मिलेगा। अगर किसी कारण से आपको और जानना है, तो अपने कंपाइलर के दस्तावेज़ों की जांच करें।
आईआईआरसी, डिनक्यूमवेयर का थ्रेड कार्यान्वयन एक क्लीनरूम कार्यान्वयन है, बूस्ट व्युत्पन्न नहीं है, और यह भी कर्नेल थ्रेडिंग का उपयोग करता है। – MSalters
इंटरफ़ेस designed around pthreads है, लेकिन यह तय करने के लिए libC++ के कार्यान्वयन पर निर्भर है कि इसका उपयोग कैसे किया जाए।
@ जेरी: संपादित। –
+1 - कम से कम मेरे लिए अधिक सटीक दिखता है। –
किस प्लेटफ़ॉर्म पर? जहां तक मानक का संबंध है, दोनों विकल्प समान रूप से मान्य हैं। – Fanael
मानक निर्दिष्ट नहीं करता है, लेकिन जिस डिग्री को कर्नेल धागे पर हावी होने के लिए दिया गया है, मुझे लगता है कि यह अनुमान लगाने में सुरक्षित है कि अधिकांश कार्यान्वयन कर्नेल धागे का उपयोग करने की संभावना है। –
सी ++ में "कर्नेल" जैसी कोई चीज़ नहीं है। आपका प्रश्न सी ++ पर एक भाषा के रूप में लागू नहीं होता है। –