"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Node.js में इवेंट लूप कैसे काम करता है?

Node.js में इवेंट लूप कैसे काम करता है?

2024-08-24 को प्रकाशित
ब्राउज़ करें:393

How event loop work in Node.js?

इवेंट लूप Node.js में एक मुख्य अवधारणा है जो इसे अतुल्यकालिक संचालन को कुशलतापूर्वक संभालने में सक्षम बनाता है। यह कैसे काम करता है इसका सरलीकृत विवरण यहां दिया गया है:

1. सिंगल थ्रेडेड प्रकृति

Node.js एक ही थ्रेड पर काम करता है। इसका मतलब यह है कि यह एक समय में कोड के केवल एक टुकड़े को निष्पादित कर सकता है। हालाँकि, Node.js को कई थ्रेड्स की आवश्यकता के बिना एक साथ कई ऑपरेशनों को संभालने के लिए डिज़ाइन किया गया है।

2. नॉन-ब्लॉकिंग I/O

Node.js नॉन-ब्लॉकिंग I/O ऑपरेशंस का उपयोग करता है। जब Node.js फ़ाइलें पढ़ने, डेटाबेस को क्वेरी करने या नेटवर्क अनुरोध करने जैसे कार्य करता है, तो यह अगले कार्य पर जाने से पहले इन कार्यों के पूरा होने की प्रतीक्षा नहीं करता है। इसके बजाय, यह अन्य कोड निष्पादित करना जारी रखता है जबकि ये कार्य संसाधित हो रहे हैं।

3. इवेंट लूप तंत्र

इवेंट लूप कोड के निष्पादन को प्रबंधित करने और अतुल्यकालिक घटनाओं को संभालने के लिए जिम्मेदार है। यह लगातार कार्यों की "कतार" की जांच करता है और निर्णय लेता है कि किन कार्यों को निष्पादित करना है। यहां चरण-दर-चरण विवरण दिया गया है:

  • इनिशियलाइज़: जब एक Node.js एप्लिकेशन शुरू होता है, तो यह इनिशियलाइज़ होता है और वातावरण सेट करता है।
  • निष्पादन चरण: Node.js किसी भी प्रारंभिक कोड को समकालिक रूप से निष्पादित करता है। यदि अतुल्यकालिक कार्य हैं (जैसे फ़ाइल पढ़ना या HTTP अनुरोध), तो उन्हें सिस्टम के एपीआई को सौंप दिया जाता है।
  • इवेंट लूप चरण: इवेंट लूप में कई चरण होते हैं, और यह प्रत्येक चरण में कार्यों को एक विशिष्ट क्रम में संसाधित करता है:
    • टाइमर चरण: सेटटाइमआउट() और सेटइंटरवल() द्वारा निर्धारित कॉलबैक निष्पादित करता है।
    • आईओ कॉलबैक चरण: I/O संचालन के लिए कॉलबैक निष्पादित करता है, जैसे फ़ाइल पढ़ना या नेटवर्क अनुरोध।
    • निष्क्रिय, तैयारी चरण: सिस्टम कार्यों के लिए उपयोग किया जाने वाला आंतरिक चरण।
    • मतदान चरण: नए I/O ईवेंट पुनर्प्राप्त करता है, उनके कॉलबैक निष्पादित करता है। यदि मतदान कतार खाली है, तो यह जाँच करेगा कि क्या setImmediate() कतार में कॉलबैक हैं।
    • चेक चरण: setImmediate() द्वारा निर्धारित कॉलबैक निष्पादित करता है।
    • कॉलबैक चरण बंद करें: करीबी घटनाओं को संभालता है, जैसे कि सॉकेट.ऑन('बंद') द्वारा उत्सर्जित घटनाएं।
  • पुनः जांचें और बाहर निकलें: यदि ईवेंट लूप में संसाधित करने के लिए कोई और कार्य नहीं है, तो यह बाहर निकल जाएगा, जिससे प्रोग्राम समाप्त हो जाएगा। यदि कोई कार्य अभी भी लंबित हैं, तो यह चलता रहेगा।

4. कॉलबैक कतार

एसिंक्रोनस कार्य, एक बार पूरा हो जाने पर, उनके कॉलबैक को एक कतार में धकेल देते हैं। इवेंट लूप इन कॉलबैक को कतार से चुनता है और उन्हें क्रम में निष्पादित करता है।

5. माइक्रोटास्क कतार (अगला टिक)

मुख्य कतार के अलावा, एक माइक्रोटास्क कतार (या अगली टिक कतार) भी है जहां प्रोसेस.नेक्स्टटिक() या वादों के .then() हैंडलर के साथ निर्धारित कॉलबैक कतारबद्ध हैं। माइक्रोटास्क को नियमित कॉलबैक पर प्राथमिकता दी जाती है, जिसका अर्थ है कि उन्हें वर्तमान ऑपरेशन पूरा होने के बाद लेकिन इवेंट लूप के अगले चरण में जाने से पहले निष्पादित किया जाता है।

उदाहरण

ईवेंट लूप कैसे काम करता है यह बताने के लिए यहां एक सरल उदाहरण दिया गया है:

const fs = require('fs');

console.log('Start');

fs.readFile('file.txt', (err, data) => {
  if (err) throw err;
  console.log('File read complete');
});

console.log('End');

आउटपुट:

Start
End
File read complete

स्पष्टीकरण:

  1. कंसोल.लॉग('प्रारंभ'); और कंसोल.लॉग('समाप्त'); समकालिक रूप से निष्पादित होते हैं।
  2. fs.readFile एक एसिंक्रोनस फ़ाइल रीड ऑपरेशन आरंभ करता है और बिना प्रतीक्षा किए कोड की अगली पंक्ति निष्पादित करना जारी रखता है।
  3. एक बार जब फ़ाइल पढ़ने का ऑपरेशन पूरा हो जाता है, तो इसका कॉलबैक (कंसोल.लॉग('फ़ाइल पूरी पढ़ी गई');) को इवेंट लूप की कॉलबैक कतार में धकेल दिया जाता है।
  4. सिंक्रोनस कोड निष्पादन पूरा होने के बाद इवेंट लूप कॉलबैक को संसाधित करता है।

इवेंट लूप, सिस्टम को ऑपरेशंस सौंपकर और उनके परिणामों को एसिंक्रोनस रूप से संभालकर, एकल-थ्रेडेड होने के बावजूद, Node.js को एक साथ कई ऑपरेशनों को कुशलतापूर्वक संभालने की अनुमति देता है।

इवेंट लूप कार्यों के निष्पादन को व्यवस्थित करता है, माइक्रोटास्क कतार को प्राथमिकता देता है ताकि यह सुनिश्चित किया जा सके कि मुख्य कार्य कतार में कार्यों पर आगे बढ़ने से पहले वादों और संबंधित संचालन को जल्दी से हल किया जाता है। (मैक्रो टास्क)।

यह डायनामिक जावास्क्रिप्ट को एकल-थ्रेडेड वातावरण में जटिल अतुल्यकालिक व्यवहार को संभालने में सक्षम बनाता है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/syed_ammar/how-event-loop-work-in-nodejs-4lf4?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3