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。