Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

parfeval

在后台运行函数

    说明

    示例

    F = parfeval(backgroundPool,fcn,n,X1,...,Xm) 调度要在后台运行的函数 fcn。当 MATLAB® 正在运行函数 fcn 时,您可以运行其他代码。

    要在并行池上运行函数,请参阅 parfeval (Parallel Computing Toolbox)

    parfeval 在后台工作进程上运行函数 fcn。有关工作进程和后台的详细信息,请参阅Background Workers

    MATLAB 将函数 fcn 异步计算为 [Y1,...,Yn] = fcn(X1,...,Xm),使用 m 个输入,n 个输出。

    MATLAB 在函数 fcn 完成运行之前返回 Future 对象 F。您可以使用 fetchOutputs 从 future 对象检索结果 [Y1,...,Yn]。要停止运行函数 fcn,请使用 cancel 函数。有关 future 对象的详细信息,请参阅 Future

    F = parfeval(fcn,n,X1,...,Xm) 调度要运行的函数 fcn

    MATLAB 在函数 fcn 完成运行之前返回 Future 对象 F

    使用此语法运行设计用于 Parallel Computing Toolbox™ 的代码。

    • 如果您没有 Parallel Computing Toolbox,则不能使用任何并行资源。该函数以串行方式运行。

    • 如果您有 Parallel Computing Toolbox,parfeval 会自动使用并行资源。

    示例

    全部折叠

    此示例说明如何使用 parfevalbackgroundPool 在后台运行函数。当您在后台运行函数时,您可以同时运行其他 MATLAB® 代码。

    使用 parfeval 运行函数 magic(3) 并检索一个输出。将 backgroundPool 指定为在后台运行该函数的第一个参数。当您使用 parfeval 时,系统会创建一个 Future 对象。

    f = parfeval(backgroundPool,@magic,1,3);

    要从后台检索输出,请使用 fetchOutputs。一旦 magic 执行完毕,MATLAB 会返回输出。

    fetchOutputs(f)
    ans = 3×3
    
         8     1     6
         3     5     7
         4     9     2
    
    

    此示例说明如何停止在后台运行的 MATLAB 函数。当您使用 parfeval 在后台运行函数时,MATLAB 会立即返回一个 Future 对象。长时间运行的函数会阻止其他函数在后台运行。要停止运行该函数,您必须使用 cancel 函数,而不是选择实时编辑器 > 运行 > 停止

    使用 parfeval 运行 pause(Inf) 而不检索任何输出。将 backgroundPool 指定为在后台运行该函数的第一个参数。当您使用 parfeval 时,系统会创建一个 Future 对象。

    f = parfeval(backgroundPool,@pause,0,Inf);

    检查 Future 对象的状态。

    f.State
    ans = 
    'running'
    

    当您运行 parfeval 时,系统会调度在后台运行的函数。当后台池没有足够的资源来运行该函数时,Future 将处于 'queued' 状态。当函数由后台池运行时,Future 将处于 'running' 状态。

    要停止该函数在后台运行,请取消 Future 对象。

    cancel(f)
    f.State
    ans = 
    'finished'
    

    该函数现在处于 'finished' 状态。

    输入参数

    全部折叠

    要运行的函数,指定为函数句柄。

    示例: fcn = @magic

    输出参数的数目,指定为非负整数标量。

    n 是运行 fcn(X1,...,Xm) 所需的输出参数的数目。

    数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    输入参数,指定为以逗号分隔的变量或表达式列表。

    输出参数

    全部折叠

    输出 Future,以 parallel.Future 对象形式返回。

    扩展功能