Sobes.tech
Middle

როგორ არის განხორციელებული ერთთრაქტული პროგრამირება Node.js-ში?

sobes.tech AI

პასუხი AI-სგან

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 callback-lə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 və əsas Event Loop ipini bloklamır. Nəticələr və ya xətalar callback vasitəsilə Event Loop-a geri qaytarılır.

Əsas komponentlər:

  • Event Loop: Əsas icra dövrü, hadisələri və funksiyaların çağırışlarını idarə edir.
  • Callback növbəsi: Asinxron əməliyyatların tamamlandıqdan sonra callback-lər üçün növbə.
  • İp havuzu: 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ğı tamamladıqdan sonra işləyəcək
  // 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ın oxunması 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.