メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

send

R2026a

データ キューを使用したクライアントとワーカーの間でのデータの送信

説明

send(queue,data) は、queue で指定された DataQueue に値 data をもつメッセージまたはデータを送信します。afterEach で指定された関数に個々の保留中のメッセージを渡すには、afterEach を呼び出します。

例

send(pollablequeue,data) は、pollablequeue で指定された PollableDataQueue に値 data をもつメッセージまたはデータを送信します。poll を使用して結果を取得し、回答として data を返します。

クライアントとワーカーの間でメッセージやデータを転送および取得するには、ポーリング可能なデータ キューと共に send 関数および poll 関数を使用します。

例

例

すべて折りたたむ

DataQueue を作成し、クライアントのキューからデータを表示するコールバック関数を afterEach を使用して設定します。

q = parallel.pool.DataQueue;
afterEach(q,@disp);
parfor ループを実行し、メッセージをキューに送信します。メッセージがクライアントに到着すると、afterEach コールバック関数 @disp に渡されます。

parfor i = 1:3
    send(q,i); 
end;
     1

     2

     3

DataQueue によるデータのリスニングの詳細については、afterEach を参照してください。

PollableDataQueue オブジェクトを作成します。

p = parallel.pool.PollableDataQueue;
parfeval を使用して、値 1 をもつデータなどのメッセージを送信します。
f = parfeval(@send,0,p,1);
wait(f);
結果をポーリングします。

poll(p)
 ans = 1

PollableDataQueue を使用したデータ取得の詳細については、poll を参照してください。

この例では、parfor のウェイト バーを作成する関数を説明します。DataQueue を作成し、afterEach を使用して、キューがデータを受信するたびに実行される関数を指定します。この例では、ウェイト バーを更新するサブ関数を呼び出します。

計算負荷の高いタスクを MATLAB® で実行するために parfor ループを作成します。send を使用して、parfor ループの反復ごとにダミー データを送信します。キューがデータを受信すると、afterEach はクライアントの MATLAB で nUpdateWaitbar を呼び出し、ウェイト バーの進行状況が観察可能になります。

function a = parforWaitbar

D = parallel.pool.DataQueue;
h = waitbar(0,'Please wait ...');
afterEach(D,@nUpdateWaitbar);

N = 200;
p = 1;

parfor i = 1:N
    a(i) = max(abs(eig(rand(400))));
    send(D,i);
end

    function nUpdateWaitbar(~)
        waitbar(p/N,h);
        p = p + 1;
    end
end

Status bar indicating roughly one third completion.

入力引数

すべて折りたたむ

データ キュー。parallel.pool.DataQueue オブジェクトとして指定します。

例: q = parallel.pool.DataQueue;

データ キューに送信するメッセージまたはデータ。シリアル化可能な任意のデータ型として指定します。

例: send(queue,data);

ポーリング可能なデータ キュー。PollableDataQueue オブジェクトとして指定します。

close 関数を使用して PollableDataQueue を閉じると、キューへのデータの送信はできなくなります。キューにデータを送信しようとするとエラーになります。 (R2025a 以降)

例: p = parallel.pool.PollableDataQueue;

拡張機能

すべて展開する

バージョン履歴

R2017a で導入