2014-08-28 7 views
5

सी ++ बूस्ट थ्रेडिंग लाइब्रेरी उपयोग का थ्रेडिंग मॉडल कौन सा है?
1:1 (Kernel-level threading)
N:1 (User-level threading)
M:N (Hybrid threading)बूस्ट थ्रेडिंग लाइब्रेरी का मॉडल क्या है

इन मॉडलों (विकी से) के बीच का अंतर: http://en.wikipedia.org/wiki/Thread_(computing)#Models

मैं बढ़ावा साइट की जाँच की और यह सूत्रण मॉडल का उपयोग करता है के बारे में उल्लेख किया है नहीं है।
मुझे लगता है कि यह एक 1: 1 है, क्योंकि यह yield या reschedule की तरह समारोह प्रदान नहीं करता है, लेकिन मुझे यकीन है कि नहीं कर रहा हूँ ...

+0

उपयोगकर्ता स्तर के थ्रेडिंग को बढ़ावा देने के लिए लागू किया गया है? मंच पर निर्भर भी हो सकता है। –

+0

+1। यह एक अच्छा सवाल प्रतीत होता है ... लेकिन मुझे यकीन नहीं है कि मैं इसे समझ गया हूं, तो कृपया अपने प्रश्न में उल्लिखित मॉडल के बीच मतभेदों को विस्तारित कर सकते हैं? या, हमें एक लिंक प्रदान करें जो उन्हें समझाता है। – Nawaz

+0

@ नवाज़ http://en.wikipedia.org/wiki/Thread_(computing)#Models – pgplus1628

उत्तर

1

यह है देशी धागे, अर्थात्, यह मंच धागे, कम से कम प्रयोग करेंगे लिनक्स में, विंडोज और मैक।

जहां तक ​​मुझे पता है, थ्रेड मैपिंग प्रत्येक स्पॉन्डेड थ्रेड के लिए विंडोज, लिनक्स और मैक में कर्नेल थ्रेड के साथ 1: 1 होने जा रहा है।

मुझे यकीन नहीं है कि अन्य प्लेटफ़ॉर्म के लिए इसे अन्य तरीकों से कार्यान्वित किया जा सकता है, लेकिन मुझे boost.thread API के साथ किसी गैर-कर्नेल थ्रेड इम्प्लेमेनेशन के बारे में पता नहीं है।

सहकारी मल्टीटास्किंग के साथ उपयोगकर्ता स्तर के "धागे" के लिए, boost.coroutine का उपयोग किया जा सकता है। आगामी बूस्ट. फाइबर लाइब्रेरी भी है, जो लगभग boost.coroutine की तरह है, लेकिन यह उपयोगकर्ता-स्तर "थ्रेड" (जो लाइब्रेरी शब्दावली में फाइबर है) एपीआई और उपयोगकर्ता-स्तरीय फाइबर शेड्यूलर जोड़ती है।

  • आप boost.fiber here ढूंढ सकते हैं।
  • आप boost.coroutine here ढूंढ सकते हैं।
+1

thx, एक बड़ी मदद। क्या कोई लिंक या कोड है जो बूस्ट। थ्रेड यूज प्लेटफॉर्म थ्रेड्स घोषित करता है? – pgplus1628

+0

http://www.boost.org/doc/libs/1_56_0/doc/html/thread.html पर प्रलेखन पर नज़र डालें, आप वहां सभी कॉन्फ़िगर मैक्रोज़ देख सकते हैं। –

संबंधित मुद्दे