ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-26, Sunday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

Node.js Event Loop හඳුන්වා දෙයි: Async කේතය බ්ලොක් නොවන රහස

Node.js Event Loop හඳුන්වා දෙයි: Async කේතය බ්ලොක් නොවන රහස

Node.js එකක් එකම JavaScript ත්‍රෙඩ් එකෙන් ගොඩක් රිකවෙස්ට් එකක් හසුරුවන හැටි ඔබ කවදාවත් සිතලා තියෙනවාද? එහි මූලික රහස ‘Event Loop’ කියන යන්ත්‍රයයි. මේ ලිපියේ අපි එය කෙළින්ම විස්තර කරලා, async කේතය කොහොමත් බ්ලොක් නොවෙන්නෙ කියලා බලමු.

ගැටලුව – JavaScript එක තනි ත්‍රෙඩ් එකක් පමණක් තියෙන නිසා එකවර එක් වැඩක් පමණක් කරගන්න පුළුවන්. ගොඩක් විශාල ගොනුවක් කියවීමක්, දත්ත ගබඩා එකකින් ප්‍රතිචාරයක් බලාපොරොත්තු වීමක් වගේ වැඩකට කාලයක් ගත වුනාම, පූර්ණ ඇප් එක හෝ තාවකාලිකව නවතී යයි.

Node.js විසඳුම – Node.js, දිගුකාලීන වැඩවලට libuv කියන නවතම C/C++ ලයිබ්‍රරිය භාවිතා කරනවා. මේ ලයිබ්‍රරිය OS සමඟ සම්බන්ධ වෙලා asynchronous කාර්යයන් කළමනාකරණය කරයි. ඒ අතර JavaScript කේතය තවත් කාර්යයන් ඉදිරියට කරගෙන යයි. කාර්යයක් අවසන් වුනාම, ඒකේ callback එක Callback Queue එකට යොමු කරයි. Event Loop එක Call Stack හි හිස්වූ පසු, ඒ callback එක Call Stack එකට ගෙන එයි.

Event Loop එක නිතරම “Call Stack එක හිස්ද?” කියලා පරීක්ෂා කරයි. පිළිතුර “ඔව්” නම්, Queue එකේ ඉඳලා අලුත් callback එක Stack එකට ගෙන එයි.

සාමාන්‍ය උදාහරණයක්

console.log("Start"); setTimeout(() => { console.log("Timeout"); }, 0); console.log("End"); මෙහි ප්‍රතිඵලය Start → End → Timeout වේ. 0 ms delay එකත් callback එක සින්ක්‍රෝනස් කේතය අවසන් වන තුරු රැඳී සිටීම නිසා මෙහෙමයි.

Event Loop අවධි

  • Timers – setTimeout() සහ setInterval() callbacks ක්‍රියාත්මක කරයි.
  • Pending Callbacks – සමහර system callbacks ඉදිරියට ගනී.
  • Poll – I/O (ගොනු, ජාල, DB) අවසන් වූ callbacks ප්‍රකාරයෙන් ක්‍රියාත්මක වේ. මෙය වැඩිම වැදගත් අවධියයි.
  • Check – setImmediate() callbacks ක්‍රියාත්මක කරයි.
  • Close Callbacks – socket වගේ සම්පත් වැසීමට සම්බන්ධ callbacks.

process.nextTick() vs Promise vs Timers – Node.js async callbacks වර්ගයක් අනුව ක්‍රමවත් අනුපිළිවෙලක් අනුව ක්‍රියාත්මක වේ. typical output එක:

Start → End → nextTick → Promise → Timeout → Immediate

මෙම අනුපිළිවෙල තේරුම් ගැනීම async කේතයේ “අනපේක්ෂිත” හැසිරීම තේරුම් ගැනීමට උදව් කරයි.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

ලංකාවේ තරුණ ප්‍රොග්‍රැමර්, විශ්වවිද්‍යාල සිසුන්, සහ ස්ථානික startup ගෝලීය තරඟවලට පිවිසෙන්න Event Loop සංකල්පය අත්‍යවශ්‍ය වේ. එය නිසා:

  • අඩු සම්පත් මත වැඩ කරන ව්‍යාපාරයන්ට server එකක් බහුල රිකවෙස්ට් හසුරුවා ගත හැකිය.
  • async/await, Promise වැනි නවතම JavaScript ලයිබ්‍රරීන් භාවිතා කරලා කේතය පැහැදිලි කරගැනීමට හැකිය.
  • backend interview ගැටළු වල Event Loop පිළිබඳ දැනුමක් තිබීම රැකියා අවස්ථා වැඩි කරයි.

ඉතින්, Node.js වල Event Loop තේරුම් ගතොත්, අපේ දේශීය තාක්ෂණික ව්‍යාපාර වල scalability, performance, cost‑efficiency වැනි අංශ වල වඩාත් ප්‍රගතියක් ගෙන ඒමට හැකියාව ලැබේ.

අවසන් වශයෙන්, Event Loop එක Node.js හි scalability රහසයි. එය හොඳින් තේරුම් ගත්තාම async කේතය ලියන්න, debug කරන්න, සහ production level apps හදන්න ඉතා පහසු වේ. ඔබට අමාරු වූ Event Loop හැසිරීමක් තිබේ නම්, අදම අපේ කොමෙන්ට් වලට ලියන්න!

💡 Node.js Event Loop ගැන ඔබේ අදහස දැන්ම කියන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#Node.js #EventLoop #Async #Programming #SriLanka