主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

ThreadPool

本地计算机上的工作单元并行池

说明

使用 parpool 在本地计算机上创建一个线程式工作单元的并行池。创建池后,并行池功能(例如 parforparfeval)将在工作单元上运行。通过 ThreadPool 对象,您可以与并行池进行交互。

创建对象

  • 使用 parpool 函数在本地计算机上创建并行工作单元并行池。

    pool = parpool('Threads')

  • 使用 partition 函数从现有并行池创建池分区。 (自 R2025a 起)

属性

全部展开

此 属性 为只读。

标志位,用于指示线程池是否繁忙,返回值为 truefalse。如果有未完成的工作需要池完成,则该池很忙。

此 属性 为只读。

在线程池上运行的 FevalFuture 对象队列,作为 FevalQueue 对象返回。您可以使用此属性来检查并行池的待处理和正在运行的 future 变量。要创建 future 变量,请使用 parfevalparfevalOnAll。有关 future 变量的更多信息,请参阅 Future

数据类型: FevalQueue

客户端和工作单元均可访问的文件存储,以 FileStore 对象返回。

此 属性 为只读。

并行池中包含的线程工作单元数,以整数形式返回。您可以使用 parpool 在创建池期间指定线程式工作单元的数量。

客户端和工作单元均可访问的数据存储,以 ValueStore 对象返回。

自 R2025a 起

此 属性 为只读。

并行池中工作单元的信息,以 parallel.Worker 对象数组的形式返回。

对象函数

Composite从客户端创建并访问多个工作单元上的非分布式变量
delete关闭并行池
parfeval在并行池工作单元上运行函数
parfevalOnAll在并行池中的所有工作单元上异步运行函数
partition对并行池进行分区
parforOptionsparfor 设置的选项
spmd在并行池的工作单元上并行执行代码

限制

  • 使用 parpool('Threads')backgroundPool 创建的池都是基于线程的池,它们利用相同的资源。一个池上的活动可能会阻止另一个池上的活动,反之亦然。此外,这些池之间共享持久数据和随机数生成流状态。有关控制随机数流的更多信息,请参阅 控制工作单元上的随机数流

  • 并非所有功能都受基于线程的环境支持。有关具体限制的详细信息,请参阅检查具有线程支持的函数

版本历史记录

在 R2020a 中推出

全部展开