parallel.pool.PollableDataQueue
在客户端和工作单元之间发送和轮询数据
说明
PollableDataQueue
对象允许在计算期间,在并行池中的客户端和工作单元之间同步发送和轮询数据或消息。例如,从工作单元中,您可以将中间值发送到客户端或另一个工作单元,并在另一个计算中使用这些值。您还可以:
从客户端或任何工作单元发送数据。
创建一个
PollableDataQueue
对象,只允许创建队列的客户端或工作单元接收数据。创建一个
PollableDataQueue
对象,允许客户端或池中的任何工作单元接收数据。 (自 R2025a 起)
与所有其他句柄对象不同,PollableDataQueue
和 DataQueue
对象在传输时仍保持连接。
创建对象
描述
创建一个 q
= parallel.pool.PollableDataQueuePollableDataQueue
对象,您可以使用该对象在客户端和工作单元之间发送和轮询数据。生成的 PollableDataQueue
对象只能由创建它的客户端或工作单元轮询。在您想要接收数据的工作单元或客户端上创建 PollableDataQueue
。
设置 q
= parallel.pool.PollableDataQueue(Destination=destination
)PollableDataQueue
对象的目标行为。 (自 R2025a 起)
如果希望客户端或任何工作单元能够轮询 PollableDataQueue
对象以接收数据,请设置 Destination="any"
。
输入参量
属性
示例
提示
您只能手动检索使用
PollableDataQueue
对象发送的数据或消息。要在客户端收到数据后自动处理数据,请使用parallel.pool.DataQueue
对象发送数据。在 R2025a 之前的版本中: 要将数据从并行池工作单元发送回客户端,首先在客户端创建一个
PollableDataQueue
对象。在parfor
循环或其他并行语言构造(如parfeval
)中传递此PollableDataQueue
对象。从工作单元调用send
将数据发送回客户端。在客户端,使用poll
来检索从工作单元发送的消息或数据的结果。在 R2025a 之前的版本中: 要从客户端向工作单元发送数据,请在工作单元上创建队列,然后将其发送回客户端。有关此工作流的示例,请参阅 接收有关工作单元的通信。
在 R2023b 之前的版本中: 您无法将数据从一个工作单元发送到另一个工作单元。要在工作单元之间传输数据,请改用
spmd
、spmdSend
或spmdReceive
。