Middle
Node.js-də tək ipli proqramlaşdırma necə həyata keçirilir?
sobes.tech Süni İntellekt
AI-dan cavab
Node.js, JavaScript kodunu icra etmək üçün Event Loop mexanizması ilə tək ipli mühitdir. O, davamlı olaraq hadisələr növbəsini yoxlayır və müvafiq callbackləri icra edir.
Bloklayan əməliyyatlar (giriş/çıxış, fayllarla işləmək, şəbəkə) üçün Node.js libuv kitabxanasından Thread Pool (ip havuzu) istifadə edir. Bu əməliyyatlar asinxron şəkildə ayrı iplərdə icra olunur, əsas Event Loop ipini bloklamadan. Nəticələr və ya xətalar callbacklər vasitəsilə Event Loop-a geri qaytarılır.
Əsas komponentlər:
- Event Loop: Hadisələri və funksiyaların çağırışlarını idarə edən əsas dövr.
- Callback Queue: Asinxron əməliyyatların tamamlandıqdan sonra callbacklər üçün növbə.
- Thread Pool: Bloklayan tapşırıqları yerinə yetirmək üçün ayrı iplər.
- libuv: Event Loop və Thread Pool təmin edən aşağı səviyyəli kitabxana.
// Fayl ilə asinxron əməliyyat nümunəsi
const fs = require('fs');
fs.readFile('file.txt', 'utf8', (err, data) => {
// Bu callback fayl oxuma tamamlandıqdan sonra icra olunacaq
// və ayrı ipdə Thread Pool-dən işləyir
if (err) {
console.error(err);
return;
}
console.log(data);
});
console.log('Bu mesaj ilk görünəcək, çünki fayl oxuma asinxron');
Bu şəkildə, Node.js qeyri-bloklayan giriş/çıxış imkanları ilə yüksək performans təmin edir, JavaScript-in tək ipdə işləməsinə baxmayaraq.