Main Content

send

データを DataQueue または PollableDataQueue に送信

    説明

    send(q,data) は、値 data をもつデータの項目をキュー q に送信します。

    すべて折りたたむ

    この例では、バックグラウンドから送信したデータを現在の MATLAB セッションで自動的に処理する方法を示します。

    DataQueue オブジェクトを作成します。現在の MATLAB セッションにおいて、それぞれのデータの項目を DataQueue で受信した後に、その項目を関数 disp を使用して自動的に表示します。

    q = parallel.pool.DataQueue;
    afterEach(q,@disp);

    この例の最後で定義されている補助関数 magicWithSend は、魔方陣の和を DataQueue オブジェクトまたは PollableDataQueue オブジェクトに送信してから、その魔方陣を返します。

    parfevalbackgroundPool を使用して関数 magicWithSend をバックグラウンドで実行します。

    f = parfeval(backgroundPool,@magicWithSend,1,q,3);

    future から出力を取得するよりも先に和が表示されます。バックグラウンドから出力を取得するには、fetchOutputs を使用します。magicWithSend の実行が完了すると、MATLAB は出力を返します。

    fetchOutputs(f)
    ans = 3×3
    
         8     1     6
         3     5     7
         4     9     2
    
    

    補助関数の定義

    補助関数 magicWithSend を定義します。この関数は魔方陣を作成し、その魔方陣の和を DataQueue オブジェクトまたは PollableDataQueue オブジェクトに送信します。関数は、和を送信した後に魔方陣を返します。

    function X = magicWithSend(q,n)
        X = magic(n);
        s = sum(X,'all');
        send(q,s);
    end

    入力引数

    すべて折りたたむ

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

    • qDataQueue の場合、現在の MATLAB® セッションでデータを受信したときに afterEach を使用して自動的にデータを処理します。

    • qPollableDataQueue の場合、現在の MATLAB セッションでデータを受信した後に poll を使用して手動でデータを取得します。

    例: q = parallel.pool.DataQueue

    例: q = parallel.pool.PollableDataQueue

    送信するデータ。スカラー、ベクトル、行列、または多次元配列として指定します。

    例: send(q,"A message");

    例: send(q,magic(3));

    バージョン履歴

    R2017a で導入