में सोते हुए this सी # में थ्रेडिंग पर वेब ट्यूटोरियल, जोसेफ अल्बाहारी लिखते हैं: "पूल वाले धागे में सो जाओ मत!" आपको ऐसा क्यों नहीं करना चाहिए? यह प्रदर्शन को कितनी बुरी तरह प्रभावित कर सकता है? (ऐसा नहीं है कि मैं इसे करना चाहता हूं; मैं सिर्फ उत्सुक हूं।)पूल किए गए सी # थ्रेड
उत्तर
थ्रेड एक भारी वजन वस्तु है।
नया धागा बनाना बहुत सारे संसाधनों की आवश्यकता है, जैसे प्रबंधित स्टैक के लिए 1 एमबी असाइन करना, प्रबंधित थ्रेड ऑब्जेक्ट, कर्नेल स्टैक, कर्नेल थ्रेड ऑब्जेक्ट, उपयोगकर्ता थ्रेड पर्यावरण ब्लॉक बनाना। यह सब समय और स्मृति लेता है। इसलिए आप वस्तुओं को वास्तव में जल्दी से बनाना और नष्ट नहीं करना चाहते हैं। इसके अलावा, एक बार आपके पास एक से अधिक थ्रेड संदर्भ स्विचिंग के बाद कुछ संसाधन भी होंगे
थ्रेड पूल एक ऐसा स्थान है जहां सीएलआर अप्रयुक्त धागे डाल सकता है, यदि आपके आवेदन की आवश्यकता हो।
थ्रेडपूल में प्रारंभ में 0 धागे होते हैं, एक बार जब आप पूल से धागे का अनुरोध करते हैं, तो पूल पूल के लिए परिभाषित धागे की न्यूनतम संख्या को जल्दी से बना देगा। लगभग 2 मिनट के बाद अप्रयुक्त धागे मारे जाते हैं। लेकिन अगर लोड बढ़ता है और आपको अधिक धागे की आवश्यकता होती है, तो अधिकतम सीमा तक पहुंचने तक थ्रेड पूल धीरे-धीरे नए धागे बनाएगा। आपके पास अधिकतम से अधिक धागे नहीं हो सकते हैं, एक नए काम को पूल में लौटने के बाद सभी नए अनुरोध कतारबद्ध और निष्पादित किए जाएंगे। बदतर स्थिति में आप OutOfMemoryException
प्राप्त कर सकते हैं एक धागा एक पूल से लिया अवरुद्ध है, तो यह:
- धारण संसाधनों
- किसी भी मूल्यवान काम नहीं करता है, जबकि एक आवेदन आवश्यकता हो सकती है एक नया अनुरोध के लिए इस सूत्र शुरू ब्लॉक
थ्रेड पूल में केवल सीमित संख्या में धागे हैं; थ्रेड पूल को बड़ी संख्या में लघु कार्यों को कुशलतापूर्वक निष्पादित करने के लिए डिज़ाइन किया गया है। वे प्रत्येक कार्य को जल्दी खत्म करने पर भरोसा करते हैं, ताकि धागा पूल में वापस आ सके और अगले कार्य के लिए उपयोग किया जा सके।
तो थ्रेड पूल थ्रेड में सोते हुए पूल बाहर निकलता है, जो अंततः उपलब्ध धागे से बाहर हो सकता है, और आपके द्वारा निर्दिष्ट कार्यों को संसाधित करने में असमर्थ हो सकता है।
थ्रेड पूल एक नए धागे को बनाने की लागत खर्च किए बिना एक अलग धागे पर अपेक्षाकृत कम काम करने के लिए है। थ्रेड पूल में अधिकतम संख्या में धागे होते हैं, और एक बार यह पहुंचने के बाद, जब तक धागा उपलब्ध न हो जाए तब तक कार्य कतारबद्ध होते हैं।
थ्रेड पूल पर सोते धागे इसलिए कतार को पकड़ेंगे, या थ्रेड पूल थकावट में योगदान देंगे।
- 1. सी ++ थ्रेड पूल
- 2. सी # थ्रेड पूल में कम थ्रेड प्राथमिकता
- 3. कैश किए गए थ्रेड पूल मौजूदा थ्रेड का पुन: उपयोग कैसे करते हैं
- 4. थ्रेड-पूल क्या है?
- 5. थ्रेड पूल बनाम थ्रेड स्पॉइंग
- 6. सी # क्यूईइंग निर्भर कार्यों को थ्रेड पूल
- 7. मल्टीप्लेक्सिंग सी # 5.0 के थ्रेड पूल पर एसिंक - थ्रेड सुरक्षित?
- 8. थ्रेड पूल बनाम कई व्यक्तिगत थ्रेड
- 9. रूबी 1.9 थ्रेड पूल
- 10. जावा में थ्रेड पूल
- 11. कनेक्शन पूल थ्रेड
- 12. ग्लासफ़िश थ्रेड पूल मुद्दे
- 13. जावा थ्रेड पूल
- 14. PHP थ्रेड पूल?
- 15. थ्रेड पूल और आईएस बैकग्राउंड .NET
- 16. गतिशील (बढ़ते/घटते) थ्रेड पूल
- 17. थ्रेड पूल में सक्रिय थ्रेड संख्या
- 18. बूस्ट :: एएसओ, थ्रेड पूल और थ्रेड मॉनिटरिंग
- 19. जावा कैश्ड थ्रेड पूल और थ्रेड स्थानीय
- 20. थ्रेड पूल हैंडलिंग 'डुप्लिकेट' कार्य
- 21. सी: मेमोरी पूल पुस्तकालय?
- 22. इनहेरटेबल थ्रेडलोकल और थ्रेड पूल
- 23. हल्के थ्रेड पूल पुस्तकालय नेट
- 24. थ्रेड पूल, शेयर्ड डेटा, जावा तुल्यकालन
- 25. जेनरेट किए गए सी # कोड
- 26. सी में थ्रेड पूल कैसे लागू किया जाना चाहिए?
- 27. कैसे पता चलेगा कि सभी थ्रेड पूल के धागे पहले से ही अपने कार्यों के साथ किए गए हैं?
- 28. थ्रेड पूल से थ्रेड आईडी कैसे प्राप्त करें?
- 29. मैं थ्रेड पूल कैसे बना सकता हूं?
- 30. सी # स्ट्रक्चर्स: असाइन किए गए स्थानीय चर?
में आप सबसे पहले द्वारा
मेरा मतलब था कि पूल थ्रेड में सोना उस धागे के प्रदर्शन को कम नहीं करेगा। यह थोड़ा खराब वाक्यांश है, मैं सहमत हूं। मैंने इसे हटा दिया है। – Sven
आह, हाँ, मैं देखता हूं कि आपका क्या मतलब है। यह एक धागे पर प्रदर्शन को कम नहीं करेगा लेकिन यह पूल का उपयोग कर पूरी प्रक्रिया के प्रदर्शन को कम कर देगा। यह समझ में आता है। :) – Chris