主要内容

民意调查

检索数据从一个工人

描述

例子

调查(pollablequeue)检索的结果发送消息或数据从一个工人parallel.pool.PollableDataQueue指定的pollablequeue。您可以使用调查只在这个过程中,您创建了数据队列。

例子

(数据,好吧)=调查(pollablequeue,超时)返回数据,好吧作为一个布尔真正表明数据已经回来了。如果没有数据队列中,然后返回一个空数组与一个逻辑错误好吧。指定超时在几秒钟内作为一个可选的第二个参数。在这种情况下,该方法可能会阻止指定的时间超时返回之前。如果有数据到达队列在那段时期,返回数据。

例子

全部折叠

构造一个PollableDataQueue

p = parallel.pool.PollableDataQueue;
开始一个parfor循环发送消息,比如数据值1。
parfor我= 1把(p, i);结束
民意调查的结果。

调查(p)
1

对发送数据使用的更多细节PollableDataQueue,请参阅发送

这个例子展示了如何从一个工人中间结果返回到客户端并在客户端显示结果。

构造一个PollableDataQueue。一个PollableDataQueue是最有用发送异步函数评估使用期间和轮询数据parfevalparfevalOnAll

q = parallel.pool.PollableDataQueue;
启动一个计时器,并发送数据队列作为函数的输入parfeval执行在池中。显示的时间和返回的数据。

f = parfeval (@workerFcn, 0, q);msgsReceived = 0;开始时间=抽搐;msgsReceived < 2[数据,gotMsg] =调查(q, 1);如果gotMsg流(%后得到消息:% s。3 g秒\ n”,数据,toc(开始时间));msgsReceived = msgsReceived + 1;其他的流(“没有消息可以在%。3 g秒\ n”,toc(开始时间));结束结束函数workerFcn (q)发送(q,“开始”);暂停(3);发送(问,“停止”);结束
开始的信息:在0.39秒后没有消息可以在1.48秒内没有消息可以在2.56秒内得到消息:3.35秒后停止

返回第一个消息在0.39秒后执行parfeval。在此期间的数据和功能parfeval被序列化,发送到工人,反序列化并设置运行。当你开始代码,工人发送一些数据,串行化,通过网络发送回客户端和数据队列。民意调查指出这个操作并返回到客户端函数值。然后的时间parfeval被称为显示。注意延迟3 s在工人计算(在这种情况下,长时间的沉默)。

输入参数

全部折叠

可投票的数据队列,指定为一个parallel.pool.PollableDataQueue对象。

例子:(数据,好]=调查(pollablequeue optionalTimeout);

可选的超时时间间隔(以秒为单位)用来阻止民意调查在返回之前,指定为一个标量。

例子:(数据,好]=调查(pollablequeue超时);

输出参数

全部折叠

从工人到一个数据队列消息或数据,指定为任何可序列化的值。

例子:(数据,好]=调查(pollablequeue超时);

检查数据是否已返回,返回一个布尔值。如果数据被返回好吧分配一个布尔的价值真正的。如果没有队列中的数据pollablequeue,然后返回一个空数组和一个布尔值好吧

例子:(数据,好]=调查(pollablequeue超时);

版本历史

介绍了R2017a