Main Content

send

将数据发送到 DataQueuePollableDataQueue

    说明

    示例

    send(q,data) 将值为 data 的数据项发送到队列 q

    示例

    全部折叠

    此示例说明如何在当前 MATLAB 会话中自动处理从后台发送的数据。

    创建一个 DataQueue 对象。在当前 MATLAB 会话中的 DataQueue 上接收到每个数据项后,系统会自动使用 disp 函数显示该数据项。

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

    在此示例末尾定义的辅助函数 magicWithSend 将幻方矩阵的总和发送给 DataQueuePollableDataQueue 对象,然后返回该幻方矩阵。

    使用 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。该函数创建一个幻方矩阵,然后将幻方矩阵的总和发送到 DataQueuePollableDataQueue 对象。在发送总和后,该函数返回该幻方矩阵。

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

    输入参数

    全部折叠

    队列,指定为 parallel.pool.DataQueueparallel.pool.PollableDataQueue 对象。

    • 如果 qDataQueue,请使用 afterEach 在当前 MATLAB® 会话中收到数据时自动处理数据。

    • 如果 qPollableDataQueue,请使用 poll 在当前 MATLAB 会话中收到数据后手动检索数据。

    示例: q = parallel.pool.DataQueue

    示例: q = parallel.pool.PollableDataQueue

    要发送的数据,指定为标量、向量、矩阵或多维数组。

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

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

    版本历史记录

    在 R2017a 中推出