CodeBlanks Logo Icon CodeBlanks

Özet - Worker threads

Worker, postMessage ve SharedArrayBuffer'ı birleştirerek bir paralel hesap yazarsın.

Özet - Worker threads

Bu grupta worker_threads modülünü öğrendin: new Worker ile iş parçacığı başlatır, postMessage ile mesajlaşırsın. MessageChannel iki portlu kanal, SharedArrayBuffer paylaşılan bellek sağlar.

cluster ayrı süreçler oluşturur; worker_threads ise aynı süreç içinde paralel iş parçacıkları. CPU yoğun işler için worker_threads, ağ yükü için cluster daha uygundur. İkisini birlikte de kullanabilirsin.

Ne zaman worker_threads?

worker_threads, CPU yoğun işler içindir: görüntü işleme, büyük matematik, şifreleme, dosya sıkıştırma. Bu işler olay döngüsünü tıkarsa, istekler gecikir.

I/O yoğun işlerde (ağ, disk) worker_threads gereksizdir; Node.js'in olay döngüsü ve async I/O zaten yeterlidir. Önce ölç, sonra iş parçacığı ekle. Gereksiz iş parçacığı karmaşıklığı artırır.

Uygulama Ana mı işçi mi yaz

isMainThread doğruysa "ana", değilse "işçi" yaz.

Başlangıç kodu

index.js
// modülü içe aktar, ana bayrağı al

// bayrağa göre "ana" veya "işçi" yaz

Örnek çözüm

index.js
const { isMainThread } = require("worker_threads");
console.log(isMainThread ? "ana" : "işçi");

Beklenen çıktı

ana

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 cluster ile worker_threads arasındaki temel fark nedir?

  • İkisi aynı şeydir
  • cluster ayrı süreç, worker_threads paralel iş parçacığı Doğru cevap
  • cluster ağdır, worker_threads veritabanıdır
  • cluster dosya okur, worker_threads yazdır

Açıklama: cluster ayrı süreçler, worker_threads ise aynı süreçte paralel iş parçacıklarıdır.

2 Parçayı rolüne eşle

Kavram Anlamı
new Worker İş parçacığı başlatır
postMessage Mesaj gönderir
MessageChannel İki portlu kanal
SharedArrayBuffer Paylaşılan bellek

İleri seviye bölümündeki tüm dersler