JavaScript Academy · पाठ

मैक्रोटास्क और टास्क क्यू

समझिए कि टाइमर और I/O कैसे निर्धारित किए जाते हैं।

पाठ 2, कुल 4 में से13 चरण

मैक्रोटास्क और टास्क क्यू, CoddyKit पर JavaScript Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह JavaScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

मैक्रोटास्क क्या है

मैक्रोटास्क (जिसे कार्य भी कहा जाता है) बाद में चलने के लिए निर्धारित काम की एक इकाई है, जो वर्तमान सिंक्रोनस कोड के पूरा होने के बाद चलती है। setTimeout कॉलबैक इसका पारंपरिक उदाहरण हैं।

कॉल स्टैक के खाली होने तक मैक्रोटास्क कार्य-कतार में प्रतीक्षा करते हैं।

setTimeout काम को टालता है

setTimeout बाद में चलने के लिए एक कॉलबैक पंजीकृत करता है। विलंब 0 होने पर भी यह वर्तमान सिंक्रोनस कोड के बाद चलता है।

console.log('first');
setTimeout(() => console.log('third (timeout)'), 0);
console.log('second');

कार्य-कतार

जब टाइमर सक्रिय होता है, तो उसका कॉलबैक कार्य-कतार में रख दिया जाता है। इवेंट लूप इस कतार से तभी एक कार्य लेता है जब कॉल स्टैक खाली हो, उसे पूरा चलाता है और फिर दोबारा जाँच करता है।

console.log('sync start');
setTimeout(() => console.log('task 1'), 0);
setTimeout(() => console.log('task 2'), 0);
console.log('sync end');

कार्य कतार में रखे गए क्रम में चलते हैं

समान विलंब वाले कार्य उस क्रम में चलते हैं जिसमें वे निर्धारित किए गए थे। कार्य-कतार FIFO होती है: पहले प्रवेश, पहले निर्गम।

setTimeout(() => console.log('A'), 0);
setTimeout(() => console.log('B'), 0);
setTimeout(() => console.log('C'), 0);
console.log('sync');

विलंब न्यूनतम होता है, सटीक नहीं

आप जो विलंब देते हैं, वह कॉलबैक के चलने योग्य होने से पहले का न्यूनतम समय होता है। वास्तविक निष्पादन तभी होता है जब स्टैक खाली हो जाए और पहले के कार्य पूरे हो जाएँ, इसलिए इसमें अधिक समय लग सकता है।

setTimeout(() => console.log('100ms'), 100);
setTimeout(() => console.log('0ms'), 0);
console.log('synchronous runs first');

विलंब के आधार पर क्रमबद्ध करना

अलग-अलग विलंब क्रम बदल देते हैं: कम विलंब वाले कार्य पहले चलने योग्य हो जाते हैं, इसलिए निर्धारण के क्रम की परवाह किए बिना वे सामान्यतः अधिक विलंब वाले कार्यों से पहले चलते हैं।

setTimeout(() => console.log('50'), 50);
setTimeout(() => console.log('10'), 10);
setTimeout(() => console.log('30'), 30);
console.log('start');

हर लूप चक्र में एक कार्य

इवेंट लूप हर चक्र में ठीक एक मैक्रोटास्क चलाता है और अगले चक्र से पहले अन्य काम करता है। इससे कार्यों के बीच प्रणाली सक्रिय बनी रहती है।

console.log('1');
setTimeout(() => {
  console.log('2');
  setTimeout(() => console.log('4'), 0);
}, 0);
setTimeout(() => console.log('3'), 0);

नेस्टेड टाइमर बाद में कतार में आते हैं

किसी कार्य के अंदर निर्धारित किया गया टाइमर पहले से प्रतीक्षा कर रहे कार्यों के पीछे कतार में आता है, इसलिए वह लूप के बाद वाले चक्र में चलता है।

setTimeout(() => {
  console.log('outer');
  setTimeout(() => console.log('inner nested'), 0);
}, 0);
setTimeout(() => console.log('sibling'), 0);

setInterval भी मैक्रोटास्क हैं

setInterval दोहराए जाने वाला मैक्रोटास्क निर्धारित करता है। यहाँ हम कुछ पुनरावृत्तियाँ चलाकर clearInterval से रोकते हैं, ताकि परिणाम सीमित रहे।

let count = 0;
const id = setInterval(() => {
  count++;
  console.log('tick ' + count);
  if (count === 3) clearInterval(id);
}, 10);
console.log('interval scheduled');

सिंक्रोनस कोड हमेशा पहले चलता है

विलंब कितना भी कम क्यों न हो, हर मैक्रोटास्क वर्तमान निष्पादन में सभी सिंक्रोनस कोड के पीछे प्रतीक्षा करता है। पहले स्टैक का खाली होना आवश्यक है।

setTimeout(() => console.log('macrotask'), 0);
for (let i = 1; i <= 3; i++) console.log('sync ' + i);
console.log('done sync');

मैक्रोटास्क क्यों महत्वपूर्ण हैं

मैक्रोटास्क काम को बिना रोक लगाए टालने देते हैं। किसी भारी काम को समयबद्ध हिस्सों में बाँटने से ऐप सक्रिय बना रहता है। लेकिन मैक्रोटास्क की प्राथमिकता सबसे अधिक नहीं होती: माइक्रोटास्क (प्रॉमिस) अगले मैक्रोटास्क से पहले चलते हैं, जैसा कि आप आगे देखेंगे।

console.log('schedule');
setTimeout(() => console.log('runs after sync'), 0);
console.log('still sync');

त्वरित जाँच

setTimeout(cb, 0) कॉलबैक कब चलता है?

पुनरावलोकन: मैक्रोटास्क

आपने सीखा कि टाला गया काम किस तरह निर्धारित होता है:

  • मैक्रोटास्क (setTimeout, setInterval) कार्य-कतार में प्रतीक्षा करते हैं।
  • कतार FIFO होती है; इवेंट लूप हर चक्र में एक कार्य चलाता है।
  • विलंब न्यूनतम होता है और सिंक्रोनस कोड हमेशा पहले चलता है।
  • माइक्रोटास्क की प्राथमिकता अधिक होती है, जिसे आप आगे सीखेंगे।
शुरुआत निःशुल्क

एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
59
पाठ
200

अक्सर पूछे जाने वाले प्रश्न

क्या “मैक्रोटास्क और टास्क क्यू” पाठ निःशुल्क है?

हाँ — JavaScript Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “मैक्रोटास्क और टास्क क्यू” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। JavaScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“मैक्रोटास्क और टास्क क्यू” में मैं क्या सीखूँगा?

समझिए कि टाइमर और I/O कैसे निर्धारित किए जाते हैं। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ JavaScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या JavaScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर JavaScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“मैक्रोटास्क और टास्क क्यू” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस JavaScript Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर JavaScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. कॉल स्टैक
  2. मैक्रोटास्क और टास्क क्यू
  3. माइक्रोटास्क और Promise
  4. queueMicrotask और क्रम
← JavaScript Academy पर वापस जाएँ