धागे काम के वितरण के लिए और कहा कि वास्तव में कोई फर्क नहीं पड़ता अगर हम अभी इंतजार कुछ हो रहा है के लिए कुछ इंतजार कर से बचने के लिए महान हैं। तो धागे का उपयोग निश्चित रूप से आपके डिजाइन के लिए एक सभ्य विचार है।
आप कितने धागे होना चाहिए करने के लिए के रूप में, और क्या यह "लायक" कम या ज्यादा धागे चल रहा है? जवाब देने के लिए यह एक बहुत ही कठिन सवाल है। सीपीयू गहन धागे के लिए, सिस्टम में सीपीयू कोर से अधिक होने में वास्तव में कोई बात नहीं है, क्योंकि आपको आगे के थ्रेड होने से अधिक काम नहीं मिलेगा [अभी भी सॉफ्टवेयर आर्किटेक्चर के कारण अधिक धागे होने के कारण हो सकते हैं, लेकिन आमतौर पर यह आमतौर पर होता है क्योंकि सॉफ़्टवेयर बहुत जटिल हो रहा है, और उम्मीद है कि आप वहां नहीं पहुंच पाएंगे ...]
उन चीजों के लिए जो प्रतीक्षा करते हैं, और इस प्रकार अधिक CPU का उपयोग नहीं करते हैं, धागे की संख्या अधिक होती है "जो भी इसे बनाता है कोड में संभालना आसान है "- जाहिर है, हजारों होने के कारण शायद एक बुरा विचार है, लेकिन एक या दो या तीन एक अंतर बनाने के लिए नहीं जा रहे हैं। आपको स्पष्ट रूप से एक ही समस्या होगी "मैं थ्रेड को कैसे बताऊं कि आगे क्या करना है, और मुझे परिणाम के लिए इंतजार करने की आवश्यकता कब है ...", आदि। एक निष्क्रिय धागा सिस्टम को "नहीं" करता है प्रदर्शन - इसमें थोड़ी मात्रा में स्टैक मेमोरी और थ्रेड कंट्रोल डेटा की एक छोटी सी मात्रा होती है, लेकिन यह इतनी छोटी राशि है कि इससे वास्तव में कोई फर्क नहीं पड़ता कि आपके पास बड़ी संख्या में नहीं है।
सारांश में, शायद अंधे आदमी के रूप में "बहुत कम ऊन के लिए चिल्ला का एक बहुत" कहा जब वह सुअर sheared - दूसरे शब्दों में, काम के बहुत सारे, बहुत ज्यादा नहीं लाभ में।
स्रोत
2012-12-22 15:05:06
* "क्या यह भी एक सार्थक अनुकूलन है?" * - शायद नहीं। – Pubby
std :: धागा मानक में है। इसका उपयोग करने के बारे में सोचो। –
std :: थ्रेड विंडोज सिस्टम पर ठीक से काम नहीं करता है। यह कार्यात्मक रूप से बूस्ट :: थ्रेड के समान काम है, इसलिए यदि मुझे कभी भी स्विच की आवश्यकता है तो आसान है। – jmegaffin