অধ্যায় ৩৭: JavaScript Event Loop ও Call Stack (বাংলায়)



এই অধ্যায়ে শিখবো JavaScript এর Event Loop, Call Stack, এবং Task Queue কী এবং কীভাবে JavaScript অ্যাসিঙ্ক্রোনাস কাজ পরিচালনা করে।


১. JavaScript কীভাবে কাজ করে?

  • JavaScript হলো Single-threaded ভাষা, মানে একবারে শুধু একটা কাজ করতে পারে।

  • কিন্তু আমরা জানি, JavaScript অ্যাসিঙ্ক্রোনাস কাজও করতে পারে, যেমন: API কল, টাইমার ইত্যাদি।

  • এটি সম্ভব হয় Event LoopCall Stack এর মাধ্যমে।


২. Call Stack কী?

  • Call Stack হলো একটি স্ট্যাক ডেটা স্ট্রাকচার যেখানে ফাংশনগুলো একের পর এক সাজানো থাকে।

  • যখন একটি ফাংশন কল হয়, তখন সেটি স্ট্যাকের উপরে চলে যায়।

  • ফাংশন শেষ হলে স্ট্যাক থেকে সরানো হয়।

  • যদি কল স্ট্যাক ফাঁকা থাকে, তখন নতুন ফাংশন চালানো হয়।


৩. Example: Call Stack এর কাজ

function first() {
  console.log("প্রথম ফাংশন");
  second();
  console.log("প্রথম ফাংশন শেষ");
}

function second() {
  console.log("দ্বিতীয় ফাংশন");
}

first();

কমান্ডের স্ট্যাক:

  • first() কল

  • second() কল

  • second() শেষে স্ট্যাক থেকে সরানো

  • first() শেষে স্ট্যাক থেকে সরানো


৪. Web APIs ও Task Queue

  • ব্রাউজার কিছু কাজ (যেমন: setTimeout, HTTP requests) Web APIs এ পাঠায়।

  • কাজ শেষ হলে, callback ফাংশনগুলো Task Queue-তে চলে যায়।

  • JavaScript শুধুমাত্র Call Stack ফাঁকা হলে Task Queue থেকে ফাংশনগুলো Call Stack এ নিয়ে আসে।


৫. Event Loop কী?

  • Event Loop হলো একটি লুপ যা দেখে Call Stack খালি কি না।

  • খালি থাকলে Task Queue থেকে একটি কাজ Call Stack এ পাঠায়।

  • এই প্রক্রিয়ায় JavaScript অ্যাসিঙ্ক্রোনাস কাজ করে।


৬. উদাহরণ:

console.log("১");

setTimeout(() => {
  console.log("২");
}, 0);

console.log("৩");

আউটপুট:


কারণ setTimeout এর callback Task Queue-তে যায়, Call Stack ফাঁকা হলে পরে চলে।


৭. Microtask Queue (Promise Jobs)

  • Promise এর .then() callback গুলো Microtask Queue তে যায়, যেটা Task Queue এর থেকে বেশি প্রাধান্য পায়।

  • তাই Promise callback গুলো আগে এক্সিকিউট হয়।

console.log("start");

Promise.resolve().then(() => console.log("promise"));

console.log("end");

আউটপুট:
start
end
promise


সারাংশ

উপাদান কাজ
Call Stack ফাংশন এক্সিকিউশন ট্র্যাক করে
Web APIs অ্যাসিঙ্ক্রোনাস কাজ হ্যান্ডেল করে
Task Queue Callback রাখে যেগুলো পরে এক্সিকিউট হবে
Microtask Queue Promise এর callback রাখে, প্রাধান্য বেশি
Event Loop Call Stack ফাঁকা হলে Task/Microtask Queue থেকে কাজ নেয়

এই অধ্যায় শেষে আপনি বুঝতে পারছেন:

  • JavaScript এর সিঙ্গেল থ্রেডেড প্রকৃতি

  • Call Stack ও Event Loop কীভাবে কাজ করে

  • অ্যাসিঙ্ক্রোনাস কাজ কিভাবে পরিচালিত হয়

  • Promise ও setTimeout এর পার্থক্য


পরবর্তী অধ্যায়:
অধ্যায় ৩৮: JavaScript Error Handling (try, catch, finally)

লিখুন: “অধ্যায় ৩৮ শুরু করো” — তাহলে শিখবো কীভাবে JavaScript এ এরর ধরতে হয় এবং হ্যান্ডেল করতে হয়।

Post a Comment

Previous Post Next Post