Sobes.tech
Middle

Node.js'te tek iş parçacıklı programlama nasıl uygulanır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Node.js, JavaScript kodunu çalıştırmak için Event Loop mekanizması sayesinde tek iş parçacıklı bir çalışma ortamıdır. Sürekli olarak olay kuyruğunu kontrol eder ve ilgili geri çağrıları (callback) çalıştırır.

Bloke edici işlemler (giriş/çıkış, dosya işlemleri, ağ) için Node.js, libuv kütüphanesinden bir İş Parçacığı Havuzu (Thread Pool) kullanır. Bu işlemler, ana Event Loop iş parçacığını engellemeden, ayrı iş parçacıklarında asenkron olarak gerçekleştirilir. Sonuçlar veya hatalar, geri çağrılar aracılığıyla Event Loop'a geri döner.

Ana bileşenler:

  • Event Loop: Olayları ve fonksiyon çağrılarını işleyen ana döngü.
  • Callback Kuyruğu: Tamamlanan asenkron işlemler için geri çağrıların kuyruğu.
  • İş Parçacığı Havuzu: Bloke edici görevleri yerine getiren ayrı iş parçacıkları.
  • libuv: Event Loop ve İş Parçacığı Havuzu sağlayan düşük seviyeli kütüphane.
// Dosya ile asenkron işlem örneği
const fs = require('fs');

fs.readFile('file.txt', 'utf8', (err, data) => {
  // Bu geri çağrı, dosya okuma işlemi tamamlandıktan sonra çalıştırılır
  // ve ayrı bir iş parçacığında gerçekleşir
  if (err) {
    console.error(err);
    return;
  }
  console.log(data);
});

console.log('Dosya okuma asenkron olduğu için bu mesaj ilk görünür');

Bu şekilde, Node.js, JavaScript'in tek iş parçacıklı yapısına rağmen, engellemesiz giriş/çıkış sayesinde yüksek performans sağlar.