Sobes.tech
Middle

Node.js'da yagona ipni dasturlash qanday amalga oshiriladi?

sobes.tech AI

AIdan javob

Node.js — bu JavaScript kodini bajarish uchun Event Loop mexanizmasi yordamida ishlaydigan yagona ipli muhit. U doimiy ravishda voqealar navbati (queue) ni tekshiradi va mos keladigan callbacklarni bajaradi.

Bloklovchi operatsiyalarni (kiritish/chiqish, fayllar bilan ishlash, tarmoq) bajarish uchun Node.js libuv kutubxonasidan Thread Pool (iplar havuzini) ishlatadi. Bu operatsiyalar asinxron tarzda alohida iplarda bajariladi, asosiy Event Loop ipini bloklamaydi. Natijalar yoki xatoliklar callbacklar orqali Event Loop ga qaytariladi.

Asosiy komponentlar:

  • Event Loop: Asosiy bajarish sikli, voqealarni va funksiyalar chaqiruvlarini boshqaradi.
  • Callback Queue: Asinxron operatsiyalar tugagach callbacklar uchun navbat.
  • Thread Pool: Bloklovchi vazifalarni bajarish uchun alohida iplar.
  • libuv: Event Loop va Thread Pool ni ta'minlovchi past darajali kutubxona.
// Fayl bilan asinxron operatsiya misoli
const fs = require('fs');

fs.readFile('file.txt', 'utf8', (err, data) => {
  // Bu callback fayl o'qilishi tugagach bajariladi
  // va alohida Thread Pool ipida ishlaydi
  if (err) {
    console.error(err);
    return;
  }
  console.log(data);
});

console.log('Bu xabar birinchi ko‘rinadi, chunki fayl o‘qish asinxron');

Shu tarzda, Node.js bloklamaydigan kirish/chiqish imkoniyatlari bilan yuqori ishlashni ta'minlaydi, JavaScriptni yagona ipda bajarishiga qaramay.