未来
函数调度运行
描述
一个未来
对象表示一个函数,在MATLAB运行时间表®。
如果你使用
parfeval
或parfevalOnAll
创建一个未来
MATLAB的函数:在后台,如果指定
backgroundPool
在创建未来
。在一个平行的池,如果你不指定
backgroundPool
在创建未来
之一,具有并行计算工具箱™和以下应用:你有一个平行池当前打开的。
你有自动池创建启用。
在串行,否则。
如果你使用
afterEach
或毕竟
创建一个未来
,函数是由当前的MATLAB会话。它不是在后台运行或在任何平行池。
创建
您创建一个未来
对象当你做以下之一:
使用
parfeval
安排一个函数在后台运行,在一个平行的池,或串行。使用
parfevalOnAll
安排一个函数运行在所有工人在一个池,或串行。使用
afterEach
或毕竟
安排一个函数运行后未来
对象完成。
可用的类型的未来的对象。
未来的对象 | 描述 |
---|---|
FevalFuture |
由parfeval |
FevalOnAllFuture |
由parfevalOnAll |
AfterEachFuture |
由afterEach |
AfterAllFuture |
由毕竟 |
属性
一般选择
CreateDateTime
- - - - - -日期和时间未来
创建
datetime
标量
这个属性是只读的。
日期和时间未来
对象被创建,指定为一个datetime
标量。
错误
- - - - - -错误信息
异常
标量|单元阵列
这个属性是只读的。
错误信息,指定为一个MException
标量或单元阵列异常
对象。
如果您创建了一个
未来
对象使用parfeval
或毕竟
这个属性是一个数组或细胞异常
标量。如果未来
对象完成,没有错误,这个属性是空的。如果您创建了一个
未来
对象使用afterEach
,这个属性是一个单元阵列,每个执行的一个细胞未来
错误,或1
——- - - - - -1
单元阵列,如果未来
被取消了。如果未来
对象完成,没有错误,这个属性是空的。如果您创建了一个
未来
对象使用parfevalOnAll
,这个属性是一个与一个细胞单元阵列每个工人如果任何错误发生在工人,或1
——- - - - - -1
单元阵列,如果未来
被取消了。如果未来
对象完成,没有错误,这个属性是空的。
FinishDateTime
- - - - - -日期和时间函数完成
datetime
标量
这个属性是只读的。
日期和时间函数完成时,指定的作为datetime
标量。
的未来
完成运行当MATLAB完成运行相关的函数。
如果相关的函数未来
对象不是运行结束之后,这个属性是一个空的datetime
数组中。
数据类型:datetime
函数
- - - - - -相关函数未来
function_handle
这个属性是只读的。
相关函数未来
对象,指定为一个函数处理。
如果你创建
未来
使用parfeval
或parfevalOnAll
MATLAB函数在后台运行,一个平行的池(如果你有并行计算工具箱),或在串行。如果你创建
未来
使用afterEach
或毕竟
,函数是由当前的MATLAB会话。它不是在后台运行或在任何平行池。
例子:@magic
数据类型:function_handle
ID
- - - - - -标识符
整数标量
这个属性是只读的。
标识符,指定为一个整数标量。
数据类型:双
InputArguments
- - - - - -输入参数的函数
单元阵列
这个属性是只读的。
函数的输入参数,指定为一个单元阵列。
当预定的功能fcn
指定的函数
房地产运行时,它运行fcn (X {:})
,在那里X
单元阵列的输入参数指定这个属性。
例子:{[1]}
例子:{[1,2],(2,1)}
数据类型:细胞
NumOutputArguments
- - - - - -函数返回的数量的参数
整数标量
这个属性是只读的。
函数返回的参数数量,指定为一个整数标量。
指定的函数函数
属性必须返回至少尽可能多的参数指定这个属性。
数据类型:双
OutputArguments
- - - - - -输出参数运行功能
单元阵列
这个属性是只读的。
从运行这个函数,输出参数指定为一个单元阵列。
如果这个属性是一个空单元格数组未来
对象是没有完成或运行未来
对象完成一个错误。
例子:{[3.14]}
数据类型:细胞
RunningDuration
- - - - - -当前的时间未来
持续时间
标量
当前的时间未来
对象,指定为一个持续时间
标量。
当未来
对象结束运行时,这个属性成为常数。
StartDateTime
- - - - - -日期和时间未来
开始跑步
datetime
标量
这个属性是只读的。
日期和时间未来
对象开始跑步时,指定的作为datetime
标量。
的未来
开始运行时,与之关联的MATLAB函数开始运行。
数据类型:datetime
状态
- - - - - -当前状态的未来
“排队”
|“奔跑”
|“完成”
|“失败”
|“不可用”
这个属性是只读的。
未来的当前状态,指定这些值之一:
“排队”
- - - - - -未来
排队,函数与调度运行。“奔跑”
——相关函数未来
当前正在运行。“完成”
或“失败”
——相关函数未来
完成运行。“不可用”
- - - - - -未来
无法运行。预先分配的元素未来
数组有这个状态。
FevalFuture
选项
日记
- - - - - -文本输出
特征向量
这个属性是只读的。
文本输出,指定为一个特征向量。
这个属性是一个特征向量包含所有文本显示如果您显式地指定的功能运行函数
使用指定的输入参数属性InputArguments
财产。
父
- - - - - -队列的未来
对象
parallel.FevalQueue
对象
这个属性是只读的。
队列的未来
对象,指定为一个parallel.FevalQueue
对象。
这个属性等于的队列未来
特定的对象FevalQueue
池的运行在未来。
这个属性是不可用的未来
对象在线程中运行的功能环境。
读
- - - - - -国旗表明如果输出已经阅读
真正的
|假
这个属性是只读的。
标志指示已阅读,如果输出指定为真正的
或假
。
设置此属性真正的
只有你使用fetchOutputs
或fetchNext
。
数据类型:逻辑
FevalOnAllFuture
选项
日记
- - - - - -文本由执行函数
单元阵列的特征向量
这个属性是只读的。
记录文本,指定为一个单元阵列的特征向量。
这个属性是一个包含所有文本的单元阵列显示如果您显式地运行指定的函数函数
使用指定的输入参数属性InputArguments
财产。
jth数组的元素的文本输出捕获jth工人在游泳池里了未来
。
数据类型:细胞
父
- - - - - -队列的未来
对象
parallel.FevalQueue
对象
这个属性是只读的。
队列的未来
对象,指定为一个parallel.FevalQueue
对象。
这个属性等于的队列未来
特定的对象FevalQueue
池的运行在未来。
这个属性是不可用的未来
对象在线程中运行的功能环境。
对象的功能
例子
跑回调函数函数完成后在后台运行
这个例子展示了如何使用afterEach
安排一个回调函数来运行一个函数完成后在后台运行。
使用parfeval
运行函数兰特(1)
和检索一个输出。指定backgroundPool
作为第一个参数在后台运行功能。创建10个重复10次未来
对象。
为我(我)= = 1:10 f parfeval (backgroundPool @rand 1,1);结束
在每一个未来
完成后,显示了使用价值disp
函数。的输入参数disp
输出参数从每个未来
。指定的第三个参数afterEach
函数作为0
从回调返回任何输出。
afterEach (f @disp 0);
更新等酒吧而功能在后台运行
这个例子展示了如何使用afterEach
更新等酒吧与功能在后台运行的进程。
创建一个酒吧等,w
。
w = waitbar (0,“请等待…”);
为你设定的迭代次数为
循环,N
。存储当前迭代完成的数量,0
迭代的总数,N
,在用户数据
财产等的酒吧。
N =20.;w。用户数据= [0 N];
运行一个为
循环与N
迭代。在每个迭代中,使用parfeval
和backgroundPool
运行暂停
在后台为一个随机的秒数。存储每个未来
对象数组中。
为i = 1: N延迟=兰德;f (i) = parfeval (backgroundPool @pause 0,延迟);结束
使用辅助函数updateWaitbar
更新waitbar之后未来
完成。
afterEach (f, @ (~) updateWaitbar (w), 0);
使用删除
关闭等待毕竟酒吧未来
对象完成。
毕竟(f, @(~)删除(w), 0);
定义辅助函数
定义的helper函数updateWaitbar
。函数增量的第一个元素用户数据
属性,然后使用向量计算的进展。
函数updateWaitbar (w)%更新waitbar使用用户数据的属性。%检查如果waitbar删除对象的引用如果isvalid (w)%增量迭代完成的数量w.UserData (1) = w.UserData (1) + 1;%计算的进展进步= w.UserData (1) / w.UserData (2);%更新waitbarwaitbar(进步,w);结束结束
停止运行在后台功能
这个例子展示了如何阻止一个MATLAB函数,你在后台运行。当你使用parfeval
在后台运行一个函数,MATLAB立即返回未来
对象。长时间运行的函数可以阻止其他功能在后台运行。阻止功能运行,您必须使用取消
函数,而不是选择住编辑>>停止运行。
使用parfeval
运行暂停(正)
没有获取任何输出。指定backgroundPool
作为第一个参数在后台运行功能。当你使用parfeval
,您可以创建一个未来
对象。
f = parfeval (backgroundPool @pause 0,正);
检查的状态未来
对象。
f.State
ans =“奔跑”
当您运行parfeval
,你安排一个函数在后台运行。当背景池运行功能,资源不足未来
是在“排队”
状态。当函数是由背景池,未来
是在“奔跑”
状态。
阻止功能在后台运行,取消未来
对象。
取消f.State (f)
ans = '完成'
现在的函数“完成”
状态。
提示
未来
可以访问对象是本地对象,只有在MATLAB会话创建它们。例如,如果您使用
parfeval
运行在后台创建一个函数未来
对象,未来
在工作区中不可用的背景的工人。
版本历史
介绍了R2013b
另请参阅
parallel.Pool
(并行计算工具箱)|parfeval
(并行计算工具箱)|parfevalOnAll
(并行计算工具箱)|毕竟
|afterEach
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。