थ्रेड-पूल को कार्यान्वित करने की अवधारणा क्या है (सी में पीथ्रेड से सहायता के साथ)? थ्रेड पूल से निष्पादित करने के लिए थ्रेड को कैसे आवंटित किया जा सकता है?थ्रेड-पूल क्या है?
उत्तर
एक थ्रेड-पूल अनुप्रयोग स्टार्टअप पर बनाए गए थ्रेड की एक निश्चित संख्या का संग्रह है। धागे तब उनसे आने के अनुरोधों की प्रतीक्षा कर बैठते हैं, आमतौर पर एक सेमफोर द्वारा नियंत्रित कतार के माध्यम से। जब कोई अनुरोध किया जाता है, और कम से कम एक थ्रेड इंतजार कर रहा है, तो थ्रेड जागृत हो जाता है, अनुरोध करता है, और सैमफोर पर प्रतीक्षा करने के लिए वापस चला जाता है। यदि कोई धागा उपलब्ध नहीं है, तो अनुरोध तब तक कतारबद्ध हो जाता है जब तक कोई नहीं होता है।
थ्रेड-पूल हर अनुरोध के लिए बस एक नया धागा शुरू करने से संसाधनों के प्रबंधन का एक आम तौर पर अधिक प्रभावी तरीका है। हालांकि, अनुरोधों को लोड करने के आधार पर, कुछ आर्किटेक्चर नए थ्रेड बनाए जाने की अनुमति देते हैं और पूल में जोड़े जाते हैं।
एनन के जवाब में जोड़ना मैं यह उल्लेख करना चाहता हूं कि फिक्स्ड थ्रेड पूल हैं जिनमें फ्रेड की संख्या निश्चित है; कैश किए गए थ्रेड पूल जो गतिशील रूप से बढ़ सकते हैं और तब कोई काम उपलब्ध नहीं होने पर सिकुड़ सकते हैं; गतिशील थ्रेड पूल को अधिकतम संख्या में थ्रेड और/या कार्य कतार की अधिकतम लंबाई से भी बाध्य किया जा सकता है। मुझे नहीं लगता कि वास्तव में इस तरह की चीजों के लिए एक निर्धारित शब्दावली है और सी में लिखे गए गैर-निश्चित टीपी का शायद ही कभी सामना करना पड़ता है लेकिन कम से कम किसी को पता होना चाहिए कि निश्चित टीपी एकमात्र तरह का नहीं है।
पिछले जवाब में कुछ स्पष्ट करने के लिए:
कारण यह है कि अधिक से अधिक धागे instantiating अक्षमता की ओर जाता है समय स्विचिंग संदर्भ है। ओएस समय-समय पर प्रोसेसर पर दूसरे के लिए एक थ्रेड स्विच करता है। इसमें एक धागे की स्थिति को सहेजना और स्मृति से दूसरे धागे की स्थिति लोड करना शामिल है, इसलिए यह गैर-नगण्य समय, एन एमएस प्रति संदर्भ स्विच लेता है।
उदाहरण के लिए, यदि आपके पास 10 धागे हैं, संदर्भ स्विचिंग लेक्स 10 * एन एमएस। यदि आपके पास 1000 धागे हैं, तो यह 1000 * एन एमएस है। चूंकि समवर्ती धागे की संख्या बढ़ जाती है, अंत में संदर्भ स्विचिंग मल्टीथ्रेडिंग से प्राप्त किसी भी क्षमता को खत्म कर देती है। धागे की सबसे अच्छी संख्या के मामले में आपके आवेदन में एक मीठा स्थान है। एक बार जब आप प्रयोग करके इस मीठे संख्या को निर्धारित कर लेंगे, तो आप अपने थ्रेड पूल अधिकतम आकार को थ्रेड की संख्या में सेट कर सकते हैं, जिससे मल्टीथ्रेडिंग से अधिकतम दक्षता प्राप्त हो सकती है।
- 1. थ्रेडपूल
- 2. जावा: थ्रेडपूल
- 3. सी # थ्रेडपूल
- 4. सी # थ्रेडपूल
- 5. थ्रेड बनाम थ्रेडपूल
- 6. क्या थ्रेडपूल एप्लिकेशन डोमेन के बीच साझा किया जाता है?
- 7. क्या लाइब्रेरी में थ्रेडपूल का उपयोग करना स्वीकार्य है?
- 8. कार्य बनाम थ्रेडपूल
- 9. थ्रेडपूल डिज़ाइन प्रश्न
- 10. कॉलिंग थ्रेड। थ्रेडपूल
- 11. थ्रेडपूल में अपवाद हैंडलिंग
- 12. जावा थ्रेडपूल उपयोग
- 13. जेनेटिक थ्रेडपूल .NET
- 14. जावा में सेमफोरस और थ्रेडपूल
- 15. Asynchronous Delegates बनाम थ्रेड/थ्रेडपूल?
- 16. सी # थ्रेडपूल QueueUserWorkItem अपवाद हैंडलिंग
- 17. रुबी के पास थ्रेडपूल अंतर्निहित क्यों नहीं है?
- 18. क्या Func <T> है .बजिनइवोक थ्रेडपूल का उपयोग करता है?
- 19. कार्य का उपयोग करते समय क्या होता है यदि थ्रेडपूल पूर्ण/व्यस्त है?
- 20. थ्रेडपूल में थ्रेड का नाम - सी #
- 21. सी # थ्रेडपूल एप्लिकेशन प्रदर्शन समय के साथ घट रहा है
- 22. टास्क क्रिएशनऑप्शन। लोंगरिंग विकल्प और थ्रेडपूल
- 23. विजुअल स्टूडियो में थ्रेडपूल कैसे डिबग करें?
- 24. तंग लूप में थ्रेडपूल कॉलबैक - 100% सीपीयू
- 25. थ्रेडपूल में धागे को कैसे रोकें
- 26. सरल सी ++ थ्रेडपूल कार्यान्वयन पर प्रश्न
- 27. क्या .NET थ्रेडपूल थ्रेड पूल पर वापस जाने पर रीसेट हो जाता है?
- 28. क्या डब्ल्यूसीएफ पेकॉल सेवा के लिए नए उदाहरण लाने के लिए थ्रेडपूल का उपयोग करता है?
- 29. थ्रेडपूल निराशा - सेटमैक्स थ्रेड्स से अधिक थ्रेड निर्माण
- 30. मैं थ्रेडपूल कैसे पूरा कर सकता हूं। जॉइन?
यह संभावना नहीं है कि संदर्भ स्विच में 1 एमएस तक का समय लगेगा, आम तौर पर ये हमारी लाइनों के साथ अधिक होते हैं। हालांकि बाकी सब कुछ बहुत अच्छा है। – CrazyCasta
जिन्होंने कहा कि एन एक पूर्णांक था और किसने कहा था> = 1? – Blah0x7B9
इकाइयों का उपयोग एमएस सुझाव देता है कि समय एमएस के आदेश पर होगा। मेरा मानना है कि आपके उत्तर पढ़ने वाले अधिकांश लोग यह नहीं सोचेंगे कि संदर्भ स्विचिंग समय लगभग 1 कहता था। – CrazyCasta