क्या आप कृपया बता सकते हैं कि नेटटी काम करने के लिए थ्रेड पूल का उपयोग कैसे करती है? क्या मैं सही ढंग से समझता हूं, कि दो प्रकार के धागे-पूल हैं: मालिक और कार्यकर्ता। मालिकों को I/O करने के लिए उपयोग किया जाता है और कार्यकर्ता डेटा को संसाधित करने के लिए उपयोगकर्ता कॉलबैक (संदेश पुनर्प्राप्त) को कॉल करने के लिए उपयोग किया जाता है?नेटटी थ्रेड पूल का उपयोग कैसे करती है?
उत्तर
यह NioServerSocketChannelFactory दस्तावेज़
एक ServerSocketChannelFactory जो सर्वर की ओर से NIO आधारित ServerSocketChannel बनाता से है। यह गैर-अवरुद्ध I/O मोड का उपयोग करता है जो एनआईओ के साथ कई समवर्ती कनेक्शन कुशलतापूर्वक सेवा प्रदान करने के लिए पेश किया गया था।
कैसे धागे काम
ये दो प्रकार के एक NioServerSocketChannelFactory में धागे की कर रहे हैं; एक बॉस थ्रेड है और दूसरा कार्यकर्ता धागा है।बॉस धागे
प्रत्येक बाध्य ServerSocketChannel अपने स्वयं के मालिक धागा है। उदाहरण के लिए, यदि आपने दो सर्वर पोर्ट जैसे 80 और 443 खोले हैं, तो आप में दो बॉस थ्रेड होंगे। एक मालिक धागा आने वाले कनेक्शन स्वीकार करता है जब तक कि पोर्ट अनबाउंड न हो। एक बार कनेक्शन सफलतापूर्वक स्वीकार किया जाता है, बॉस थ्रेड स्वीकृत चैनल को कार्यकर्ता धागे में से एक को पास करता है जो NioServerSocketChannelFactory प्रबंधित करता है।कार्यकर्ता धागे
एक NioServerSocketChannelFactory एक या अधिक कार्यकर्ता धागे हो सकता है। एक कार्यकर्ता थ्रेड गैर-अवरुद्ध पढ़ने और गैर-अवरुद्ध मोड में एक या अधिक चैनलों के लिए लिखता है।
एनआईओ मॉडल में, bossThread देखभाल सभी घिरे सॉकेट ले (सॉकेट सुनने), workerThread देखभाल स्वीकृत-सॉकेट ले (शामिल आईओ और इस तरह के रूप में messageReceived घटना विधि कॉल)।
नेटटी नियो कार्यान्वयन से संबंधित विवरण (3.2.4.Final) NioServerSocketChannelFactory।
कार्यकर्ता थ्रेड पूल कम से कम श्रमिक धागे की संख्या (वर्तमान में डिफ़ॉल्ट 2 * कोर की संख्या) वितरित करने में सक्षम होना चाहिए।
क्यों?
इस कार्यान्वयन के मामले में प्रत्येक कार्यकर्ता का अपना चयनकर्ता लूप होता है, इसका मतलब है कि प्रत्येक कर्मचारी चयनकर्ता पर सोने के लिए एक धागा "खाएगा"। साथ ही यह कार्यकर्ता (और संबंधित धागा) सभी वास्तविक लेखन और पढ़ने के लिए ज़िम्मेदार है (पाइपलाइन पर आग लगने वाली घटनाओं सहित, इसका मतलब है कि हैंडलर को उस श्रमिक धागे में निष्पादित किया जाता है)।
बॉस थ्रेड पूल के मामले में, वास्तव में थ्रेड पूल अनियंत्रित है क्योंकि वर्तमान कार्यान्वयन से केवल एक ही धागा प्राप्त होता है। उस थ्रेड को सर्वर सॉकेट के लिए चयनकर्ता पर सो जाता है, कनेक्शन को स्वीकार करने के बाद, जो एक कर्मचारी के साथ कनेक्शन पंजीकृत होता है।उस पल से कार्यकर्ता उस कनेक्शन की सेवा के लिए ज़िम्मेदार है।
- 1. थ्रेड-पूल क्या है?
- 2. जावा के एक्जिक्यूटर्स से HawtDispatch अलग कैसे है? (और नेटटी)
- 3. असिनकॉल यूनिट का उपयोग करके थ्रेड पूल बनाना संभव है?
- 4. नेटटी
- 5. (कैसे) टीपीएल उपयोग (सीएलआर) थ्रेड पूल करता है?
- 6. थ्रेड पूल बनाम थ्रेड स्पॉइंग
- 7. PHP थ्रेड पूल?
- 8. सी ++ थ्रेड पूल
- 9. रूबी 1.9 थ्रेड पूल
- 10. जावा थ्रेड पूल
- 11. कनेक्शन पूल थ्रेड
- 12. ग्लासफ़िश थ्रेड पूल मुद्दे
- 13. जावा में थ्रेड पूल
- 14. गतिशील (बढ़ते/घटते) थ्रेड पूल
- 15. जेटी या नेटटी का उपयोग करें?
- 16. जावा कैश्ड थ्रेड पूल और थ्रेड स्थानीय
- 17. नेटटी 4 - EventLoopGroup - EventLoop - EventExecutor - थ्रेड एफ़िनिटी
- 18. बूस्ट :: एएसओ, थ्रेड पूल और थ्रेड मॉनिटरिंग
- 19. सी # थ्रेड पूल में कम थ्रेड प्राथमिकता
- 20. कैश किए गए थ्रेड पूल मौजूदा थ्रेड का पुन: उपयोग कैसे करते हैं
- 21. थ्रेड पूल में सक्रिय थ्रेड संख्या
- 22. थ्रेड पूल बनाम कई व्यक्तिगत थ्रेड
- 23. मैं थ्रेड पूल कैसे बना सकता हूं?
- 24. इनहेरटेबल थ्रेडलोकल और थ्रेड पूल
- 25. थ्रेड पूल से थ्रेड आईडी कैसे प्राप्त करें?
- 26. हल्के थ्रेड पूल पुस्तकालय नेट
- 27. थ्रेड पूल हैंडलिंग 'डुप्लिकेट' कार्य
- 28. पूल किए गए सी # थ्रेड
- 29. चैनल.इस नेटटी
- 30. NodeJs कितने आने वाले अनुरोधों को संभालता है, क्या यह थ्रेड पूल का उपयोग करता है?
इस तरह मैं भी समझता हूं। हालांकि, नेटटी के सभी उदाहरणों में, मैं एक कैश किए गए थ्रेडपूल के साथ बॉस पूल सेट करना देखता हूं। एक थ्रेड ट्रेडर का उपयोग क्यों न करें? क्या इसका कोई विशिष्ट कारण है? इस सवाल को एक नए के बजाय इस धागे में पूछना, बिंदु पर होना और चूंकि यह चर्चा पहले से ही उठाई जा चुकी है। –