CodeBlanks Logo Icon CodeBlanks

MessageChannel

MessageChannel ile worker'lar arası kanal öğrenirsin.

MessageChannel

MessageChannel, iki bağlı port oluşturur: port1 ve port2. Bir porta yazılan mesaj diğer portta "message" olayı olarak görünür. Bu, işçiler arasında doğrudan iletişim kanalı kurmanı sağlar.

Tipik kullanım: ana, bir MessageChannel oluşturur, port2'yi worker.postMessage(msg, [port2]) ile bir işçiye transfer eder. Böylece iki işçi anaya uğramadan birbiriyle konuşabilir. Bu, işçi sayısı çok olduğunda ana darboğazını azaltır.

port1 ve port2

Bir MessageChannel oluşturduğunda port1 ve port2 alırsın. port1.postMessage(data) çağırınca port2.on("message", handler) tetiklenir ve tersi de geçerlidir.

Portlar EventEmitter'dır; on("message"), on("close") gibi olayları dinlersin. Bir portu port.start() ile etkinleştirmen gerekebilir; aksi halde mesajlar kuyrukta bekler. İş bitince port.close() ile kapatırsın.

Uygulama port1.postMessage türünü yaz

MessageChannel sınıfını içe aktar. Yeni bir kanal oluştur. typeof port1.postMessage sonucunu yaz.

Başlangıç kodu

index.js
// MessageChannel'ı içe aktar

// kanal oluştur

// postMessage türünü yaz

Örnek çözüm

index.js
const { MessageChannel } = require("worker_threads");
const { port1, port2 } = new MessageChannel();
console.log(typeof port1.postMessage);

Beklenen çıktı

function

Soru ve cevaplar

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

1 MessageChannel ne oluşturur?

  • Tek bir port
  • İki bağlı port Doğru cevap
  • Üç ayrı kanal
  • Bir iş parçacığı

Açıklama: MessageChannel iki bağlı port oluşturur.

2 Parçayı rolüne eşle

Kavram Anlamı
MessageChannel İki port oluşturur
port1 Bir taraf
port2 Diğer taraf
port.postMessage Mesaj gönderir

3 Sınıf adını tamamla

Soru
const { port1, port2 } = new ____()
Cevap
const { port1, port2 } = new MessageChannel()

Açıklama: new MessageChannel() iki bağlı port oluşturur.

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