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.