सभी साहित्य के बाद मैंने node.js पर पढ़ा है, फिर भी मैं सवाल पर वापस आ गया हूं, क्या node.js स्वयं हुड के नीचे कई धागे का उपयोग करता है? मुझे लगता है कि जवाब हां है क्योंकि अगर हम सरल एसिंच फ़ाइल का उपयोग करते हैं तो उदाहरण के लिए फ़ाइल को पढ़ने के लिए कुछ काम करना पड़ता है, लेकिन यदि नोड का मुख्य ईवेंट लूप इस काम को संसाधित नहीं कर रहा है, तो इसका मतलब यह होना चाहिए कि पॉज़िक्स थ्रेड होना चाहिए कहीं भी चल रहा है जो फ़ाइल पढ़ने का ख्याल रखता है और फिर पूरा होने पर ईवेंट लूप को निष्पादित करने के लिए वापस कॉल करता है। तो जब हम कहते हैं कि Node.js एक थ्रेड में चलता है तो क्या हम वास्तव में मतलब करते हैं कि node.js का इवेंट लूप केवल एक धागा है? या क्या मुझे यहां कुछ याद आ रहा है .....क्या Node.js वास्तव में नीचे कई धागे का उपयोग करता है?
उत्तर
node.js पर एक जावास्क्रिप्ट प्रोग्राम के लिए, केवल एक धागा है।
यदि आप तकनीकीताओं की तलाश में हैं, तो node.js अंतर्निहित ऑपरेटिंग सिस्टम की आवश्यकता होने पर एसिंक्रोनस I/O को हल करने के लिए थ्रेड का उपयोग करने के लिए स्वतंत्र है।
महत्वपूर्ण बात यह है कि जावास्क्रिप्ट प्रोग्राम में "केवल एक धागा" अबास्ट्रक्शन को तोड़ना नहीं है। यदि वहां अधिक धागे हैं, तो वे जावास्क्रिप्ट प्रोग्राम में मुख्य धागे के लिए कतार अप कर सकते हैं, वे कभी भी जावास्क्रिप्ट कोड को निष्पादित नहीं कर सकते हैं।
क्या आप "अंतर्निहित ऑपरेटिंग सिस्टम को इसकी आवश्यकता है" के बारे में अधिक जानकारी जानते हैं? –
@GoloRoden अधिकांश ऑपरेटिंग सिस्टम में एसिंक I/O कॉल होते हैं जिन्हें आपको उपयोग करने के लिए कोई थ्रेड बनाने की आवश्यकता नहीं होती है, वे कॉलबैक तंत्र/समापन बंदरगाहों का उपयोग स्वयं करते हैं। उस ने कहा, मुझे याद है कि सोलारिस अपने स्वयं के धागे बनाने के लिए इस्तेमाल करते थे और एसिंक कॉल के अंदर उन्हें "छुपा" सिंक I/O करते थे। बिंदु भी था, कॉलिंग कोड था * कोई विचार नहीं * अगर धागे थे या नहीं। –
ठीक है, इसका मतलब है: यदि ऑपरेटिंग सिस्टम थ्रेड-कम एसिंक I/O Node.js प्रदान करता है तो केवल एक थ्रेड की आवश्यकता होती है - यदि नहीं, तो अधिक थ्रेड आवश्यक हो सकते हैं। सही? –
- 1. node.js में नोड वास्तव में क्या है?
- 2. सिस्टम.डिग्नोस्टिक्स.प्रोसेस का उपयोग वास्तव में क्या करता है?
- 3. क्या libpcap उनके नीचे कच्चे सॉकेट का उपयोग करता है?
- 4. क्या org.apache.commons.lang.builder.CompareToBuilder वास्तव में करता है?
- 5. वास्तव में दोपैसफ़िल्टर GPUImage क्या करता है?
- 6. क्या करता है -एरेविथअरे वास्तव में क्या करता है?
- 7. _locking() वास्तव में क्या करता है?
- 8. इमेजस्विचर वास्तव में क्या करता है?
- 9. डेटाबेस सामान्यीकरण वास्तव में क्या करता है?
- 10. jquery $ वास्तव में क्या करता है?
- 11. URLConnection.setDoOutput() को वास्तव में क्या करता है?
- 12. वास्तव में पूर्ण जेआईडी का उपयोग कौन करता है?
- 13. क्या pg_escape_string वास्तव में करता है?
- 14. ~~ जावास्क्रिप्ट/node.js में क्या करता है?
- 15. addListener node.js में क्या करता है?
- 16. numpy.apply_along_axis वास्तव में क्या करता है?
- 17. बीईक्यू निर्देश वास्तव में क्या करता है?
- 18. jquery वास्तव में क्या ऑब्जेक्ट करता है?
- 19. रैक हैंडलर वास्तव में क्या करता है?
- 20. इवेंट कीवर्ड वास्तव में क्या करता है?
- 21. एक्सकोड 'क्लीन' वास्तव में क्या करता है?
- 22. fillMode वास्तव में क्या करता है?
- 23. आयात "आयात *" वास्तव में क्या करता है?
- 24. regsvr32 filename.ax वास्तव में क्या करता है?
- 25. वास्तव में CascadeType.REFRESH क्या करता है?
- 26. 'म्यूटेक्स लॉक' वास्तव में क्या करता है?
- 27. ifstream :: rdbuf() वास्तव में क्या करता है?
- 28. PHP का gc_enable फ़ंक्शन वास्तव में क्या करता है?
- 29. क्या फेसबुक वास्तव में ओएथ 2.0 का समर्थन करता है?
- 30. खाली विधि का नाम, यह वास्तव में क्या करता है?
जहां तक मैं इसे समझता हूं I/O पूरा करने वाले बंदरगाहों और अन्य प्लेटफार्मों पर उचित अवधारणा धागे पर भरोसा नहीं करती है, लेकिन ओएस में कुछ और हल्के वजन का निर्माण होता है। लेकिन मुझे कभी यकीन नहीं था कि क्या मैं इसे सही ढंग से समझता हूं ... –