Özet - Worker threads
- Node.js kursu
- İleri seviye
- Ders 12/83
- 5 dk
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
// modülü içe aktar, ana bayrağı al
// bayrağa göre "ana" veya "işçi" yazÖrnek çözüm
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 |