- 函数接口:
- 这是一个函数接口, 因此可用作 lambda 表达式或方法引用的赋值目标。
可分时运行的任务 - 需要长时间运行才能得出结果的任务。
1. 分时任务代表着所有需要自定义管理状态的任务。
2. 除了设置Promise的结果外,Task还可以约定特殊的Promise以向外部传递其它信息,比如:任务的进度。
3. 该接口尚不稳定,避免用于非EventLoop架构。
- 作者:
- wjybxx date 2023/4/3
-
方法概要
修饰符和类型方法说明default void任务在添加到Executor之前进行绑定default void任务开始前调用 1. start和update是连续执行的。default void任务结束时调用 1.只有在成功执行start(IContext, IPromise)的情况下才会调用 2.会在start所在的executor调用 -- 如果目标executor已关闭则不会执行。void单步执行一次。
-
方法详细资料
-
inject
任务在添加到Executor之前进行绑定 -
start
任务开始前调用 1. start和update是连续执行的。 2. start抛出异常会导致任务直接结束。- 参数:
ctx- 任务的上下文promise- 关联的promise
-
update
单步执行一次。 1.Executor在执行该方法之前会调用IPromise.trySetComputing(),因此任务内部无需再次调用。 2.任务在完成时需要将Promise置为完成状态!- 参数:
ctx- 任务的上下文promise- 关联的promise- 抛出:
Exception
-
stop
任务结束时调用 1.只有在成功执行start(IContext, IPromise)的情况下才会调用 2.会在start所在的executor调用 -- 如果目标executor已关闭则不会执行。- 参数:
ctx- 任务的上下文promise- 关联的promise
-