Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Node.js24.x】MessagePort::MessagePort()関数の使い方

MessagePort関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

MessagePort関数は、Node.jsのworker_threadsモジュールにおいて、異なるJavaScript実行コンテキスト間でメッセージを安全に送受信するための通信ポート機能を提供します。この機能は、主にメインスレッドとワーカースレッド間、あるいは複数のワーカースレッド間でデータをやり取りする際に利用されます。

通常、MessagePortMessageChannelクラスのインスタンスを通じて生成されるMessagePortオブジェクトとして存在します。MessageChannelは、互いに接続された二つのMessagePort、すなわちport1port2のペアを作成し、これらが通信経路の両端を形成します。

一方のポートのpostMessage()メソッドを使用してデータを送信すると、もう一方のポートで'message'イベントとして非同期にデータを受信できます。このイベント駆動型のメカニズムにより、スレッド間で安全かつ効率的なデータ交換が可能となります。

MessagePortの利用は、共有メモリを使わずに並行処理を実現するため、データ競合のリスクを回避し、プログラムの安全性と堅牢性を高めます。Node.jsアプリケーションのパフォーマンス向上や応答性の維持に貢献する、並行処理の基盤となる重要な要素の一つです。

構文(syntax)

1const { MessageChannel } = require('node:worker_threads');
2const { port1, port2 } = new MessageChannel();
3
4port2.on('message', (message) => {
5  // Process the received message
6});
7
8port1.postMessage('data');
9
10port1.start();
11port1.close();

引数(parameters)

引数なし

引数はありません

戻り値(return)

MessagePort

MessagePortクラスのコンストラクタです。新しいMessagePortオブジェクトを生成します。

関連コンテンツ