MATLAB 帮助中心
将数据发送到 DataQueue 或 PollableDataQueue
DataQueue
PollableDataQueue
send(q,data)
send(q,data) 将值为 data 的数据项发送到队列 q。从后台或您的当前 MATLAB® 会话发送数据。
q
data
如果您有 Parallel Computing Toolbox™,您可以从在并行池上运行的函数发送数据。有关详细信息,请参阅 send (Parallel Computing Toolbox)。
send
示例
全部折叠
此示例说明如何在当前 MATLAB 会话中自动处理从后台发送的数据。
创建一个 DataQueue 对象。在当前 MATLAB 会话中的 DataQueue 上接收到每个数据项后,系统会自动使用 disp 函数显示该数据项。
disp
q = parallel.pool.DataQueue; afterEach(q,@disp);
在此示例末尾定义的辅助函数 magicWithSend 将幻方矩阵的总和发送给 DataQueue 或 PollableDataQueue 对象,然后返回该幻方矩阵。
magicWithSend
使用 parfeval 和 backgroundPool 在后台运行 magicWithSend 函数。
parfeval
backgroundPool
f = parfeval(backgroundPool,@magicWithSend,1,q,3);
总和会先显示,然后您可从 future 对象(即函数)获取输出.要从后台检索输出,请使用 fetchOutputs。一旦 magicWithSend 执行完毕,MATLAB 会返回输出。
fetchOutputs
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
队列,指定为 parallel.pool.DataQueue 或 parallel.pool.PollableDataQueue 对象。
如果 q 是 DataQueue,请使用 afterEach 在当前 MATLAB 会话中收到数据时自动处理数据。
afterEach
如果 q 是 PollableDataQueue 对象,请使用 poll 在当前 MATLAB 会话中收到数据后手动检索数据。
poll
如果使用 close 函数关闭 PollableDataQueue 对象,则无法再向队列发送数据。向队列发送数据的任何尝试都会导致错误。 (自 R2025a 起)
close
示例: q = parallel.pool.DataQueue
q = parallel.pool.DataQueue
示例: q = parallel.pool.PollableDataQueue
q = parallel.pool.PollableDataQueue
要发送的数据,指定为标量、向量、矩阵或多维数组。
示例: send(q,"A message");
send(q,"A message");
示例: send(q,magic(3));
send(q,magic(3));
全部展开
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
在 R2017a 中推出
afterEach | poll | close | parfor | parallel.pool.DataQueue | parallel.pool.PollableDataQueue
parfor
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处