主要内容

parallel.pool.pollabledataqueue.

在客户端和工人之间发送和调查数据

    描述

    pollabledataqueue.在执行计算时,可以在并行池中的工作人员和客户端之间的数据或邮件进行同步发送和轮询。您可以获得中间值和计算进度。

    从并行池返回客户端发送数据,首先构建一个pollabledataqueue.在客户。通过这一点pollabledataqueue.进入A.议案-loop或其他并行语言构造,如Parfeval.。来自工人,电话将数据发送回客户端。在客户,使用民意调查检索从工作者发送的消息或数据的结果。

    • 你可以打电话来自创建的工人或客户pollabledataqueue.如果需要。

    • 您可以在工人上构建队列,并将其发送回客户端,以便在反向方向上进行通信。但是,您无法将队列从一个工人发送到另一个工人。使用SPMD.拉布德或者LabReceive.相反。

    • 与所有其他句柄对象不同,pollabledataqueue.达图当他们发送给工人时,实例确实保持联系。

    创造

    描述

    示例

    P.=并行.Pool.PollableDataQueue.创建一个对象,可用于发送和调查来自不同工人的消息(或数据)。创造pollabledataqueue.在您想要收到数据的工人或客户端。

    属性

    展开所有

    此属性是只读的。

    等待从队列中删除的数据项数指定为零或正整数。价值是0.或者在创造的工作人员或客户端上的正整数pollabledataqueue.实例。如果客户端创建pollabledataqueue.实例,值是0.关于所有工人。如果工人创造了pollabledataqueue.,价值是0.在客户和所有其他工人。

    对象功能

    民意调查 检索从工作者发送的数据
    使用数据队列向客户端发送数据到客户端

    例子

    崩溃

    建立A.pollabledataqueue.

    p = parallel.pool.pollabledataqueue;

    开始A.议案-loop,并发送消息,例如具有值1的数据。

    议案我= 1发送(p,i);结束

    对结果进行民意调查。

    民意调查(P)
    1

    有关使用A数据轮询的更多详细信息pollabledataqueue.,看看民意调查

    当您发送消息到apollabledataqueue.对象,消息在队列中等待。每条消息都会增加1到队列长度。当你使用时民意调查,从队列中收集一条消息。在此示例中,您使用Queelthength.要找到一个长度的财产pollabledataqueue.对象。

    当客户或工人创建一个pollabledataqueue.对象,将发送到队列的任何消息都保存在该客户端或工作者的内存中。如果客户创建一个达图对象,呢Queelthength.所有工人的财产是0.。在此示例中,您创建了一个pollabledataqueue.客户端上的对象,并从工作者发送数据。

    首先,使用一个工人创建一个并行池。

    Parpool(1);
    使用“本地”配置文件启动并行池(Parpool)连接到并行池(工人数量:1)。

    创建A.pollabledataqueue.

    pdq = parallel.pool.pollabledataqueue
    pdq = pollabledataqueue with属性:queelthength:0

    一个新创造的pollabledataqueue.有一个空队列。你可以使用议案找到pdq.queuelthight.在工人身上。找到客户端上的队列长度,以及工作人员的队列长度。

    fprintf('在客户上:%i \ n',pdq.queuelthength)
    在客户端:0
    议案我= 1 fprintf('在工人上:%i \ n',pdq.queuelthength)结束
    在工人上:0

    随着队列是空的,Queelthength.0.对于客户和工人来说。接下来,向队列发送消息。然后,使用Queelthength.要查找队列的长度。

    %首先发送消息议案i = 1发送(PDQ,'一条消息');结束%找到长度fprintf('在客户上:%i \ n',pdq.queuelthength)
    在客户上:1
    议案我= 1 fprintf('在工人上:%i \ n',pdq.queuelthength)结束
    在工人上:0

    Queelthength.属性是1在客户上,和0.在工人身上。使用民意调查从队列中检索邮件。

    msg =民意调查(PDQ);DISP(MSG)
    留言

    用来Queelthength.要查找队列的长度。

    fprintf('在客户上:%i \ n',pdq.queuelthength)
    在客户端:0

    Queelthength.0.因为队列处理已完成。

    在R2017A介绍