एक थ्रेडेड मॉडल प्रत्येक अनुरोध के लिए एक नया धागा पैदा करेगा। इसका मतलब है कि आप गणना और स्मृति के मामले में काफी कुछ ओवरहेड प्राप्त करते हैं। एक इवेंट लूप एक थ्रेड में चलता है, जिसका मतलब है कि आपको ओवरहेड नहीं मिलता है।
इसका नतीजा यह है कि आपको अपना प्रोग्रामिंग मॉडल बदलना होगा। क्योंकि ये सभी अलग-अलग चीजें एक ही धागे में हो रही हैं, आप ब्लॉक नहीं कर सकते हैं। इसका मतलब है कि आप कुछ होने की प्रतीक्षा नहीं कर सकते क्योंकि इससे पूरे धागे को अवरुद्ध कर दिया जाएगा। इसके बजाय आप कॉलबैक को परिभाषित करते हैं जिसे क्रिया पूर्ण होने के बाद बुलाया जाता है। इसे आमतौर पर गैर-अवरुद्ध I/O के रूप में जाना जाता है।
छद्म अवरुद्ध I/O के लिए उदाहरण:
row = db_query('SELECT * FROM some_table');
print(row);
छद्म गैर अवरुद्ध I/O के लिए उदाहरण:
db_query('SELECT * FROM some_table', function (row) {
print(row);
});
इस उदाहरण का उपयोग करता है lambdas (अनाम प्रक्रियाएं) की तरह वे जावास्क्रिप्ट में किया जाता है पुरे समय। जेएस घटनाओं का भारी उपयोग करता है, और यही वही है जो कॉलबैक के बारे में हैं। एक बार कार्रवाई पूरी होने के बाद, एक ईवेंट निकाल दिया जाता है जो कॉलबैक को ट्रिगर करता है। यही कारण है कि इसे अक्सर घटना मॉडल या असीमित मॉडल के रूप में जाना जाता है।
इस मॉडल का कार्यान्वयन एक लूप का उपयोग करता है जो इन घटनाओं को संसाधित करता है और आग लगा देता है। यही कारण है कि इसे ईवेंट कतार या ईवेंट लूप कहा जाता है।
घटना कतार चौखटे के प्रमुख उदाहरण में शामिल हैं:
शायद आप जो समझ नहीं रहे हैं उसके बारे में थोड़ा और विशिष्ट हो? – igorw