类 PromiseTask<V>

java.lang.Object
cn.wjybxx.concurrent.PromiseTask<V>
所有已实现的接口:
IFutureTask<V>, ITask, Runnable
直接已知子类:
ScheduledPromiseTask, UniScheduledPromiseTask

public class PromiseTask<V> extends Object implements IFutureTask<V>
ps:该类的数据是(部分)开放的,以支持不同的扩展。
作者:
wjybxx date - 2024/1/8
  • 字段详细资料

    • MASK_PRIORITY

      protected static final int MASK_PRIORITY
      优先级的掩码 - 4bit,求值频率较高,放在低位
      另请参阅:
    • MASK_TASK_TYPE

      protected static final int MASK_TASK_TYPE
      任务类型的掩码 -- 4bit,最大16种,可省去大量的instanceof测试
      另请参阅:
    • MASK_SCHEDULE_TYPE

      protected static final int MASK_SCHEDULE_TYPE
      调度类型的掩码 -- 4bit,最大16种,可支持复杂的调度
      另请参阅:
    • MASK_CLAIMED

      protected static final int MASK_CLAIMED
      是否已经声明任务的归属权
      另请参阅:
    • MASK_STARTED

      protected static final int MASK_STARTED
      分时任务是否已启动
      另请参阅:
    • MASK_STOPPED

      protected static final int MASK_STOPPED
      分时任务是否已停止
      另请参阅:
    • MASK_TIMEOUT

      protected static final int MASK_TIMEOUT
      延时任务有超时时间
      另请参阅:
    • MASK_TRIGGERED

      protected static final int MASK_TRIGGERED
      延时任务已触发过
      另请参阅:
    • OFFSET_PRIORITY

      protected static final int OFFSET_PRIORITY
      另请参阅:
    • OFFSET_TASK_TYPE

      protected static final int OFFSET_TASK_TYPE
      任务类型的偏移量
      另请参阅:
    • OFFSET_SCHEDULE_TYPE

      protected static final int OFFSET_SCHEDULE_TYPE
      调度类型的偏移量
      另请参阅:
    • MAX_PRIORITY

      protected static final int MAX_PRIORITY
      最大优先级
      另请参阅:
    • ctx

      protected IContext ctx
      任务上下文
    • options

      protected final int options
      调度选项
    • promise

      protected final IPromise<V> promise
      任务关联的promise - 用户可能在任务完成后继续访问,因此不能清理
    • ctl

      protected int ctl
      控制标记
  • 构造器详细资料

    • PromiseTask

      public PromiseTask(Object task, IContext ctx, int options, IPromise<V> promise)
      参数:
      task - 用户的任务,支持的类型见TaskBuilder.taskType(Object)
      ctx - 任务关联的上下文
      options - 任务的调度选项
      promise - 任务关联的promise
    • PromiseTask

      public PromiseTask(TaskBuilder<V> builder, IPromise<V> promise)
      参数:
      builder - 任务构建器
      promise - 任务关联的promise
    • PromiseTask

      public PromiseTask(Object task, IContext ctx, int options, IPromise<V> promise, int taskType)
  • 方法详细资料

    • ofAction

      public static PromiseTask<?> ofAction(Runnable action, IContext ctx, int options, IPromise<?> promise)
    • ofAction

      public static PromiseTask<?> ofAction(Consumer<? super IContext> action, IContext ctx, int options, IPromise<?> promise)
    • ofFunction

      public static <V> PromiseTask<V> ofFunction(Callable<? extends V> action, IContext ctx, int options, IPromise<V> promise)
    • ofFunction

      public static <V> PromiseTask<V> ofFunction(Function<? super IContext,? extends V> action, IContext ctx, int options, IPromise<V> promise)
    • ofBuilder

      public static <V> PromiseTask<V> ofBuilder(TaskBuilder<V> builder, IPromise<V> promise)
    • getOptions

      public final int getOptions()
      从接口复制的说明: ITask
      任务的调度选项
      指定者:
      getOptions 在接口中 ITask
    • isEnabled

      public final boolean isEnabled(int taskOption)
      任务是否启用了指定选项
    • getTask

      public final Object getTask()
      获取绑定的任务
    • getTaskType

      public final int getTaskType()
      获取任务的类型 -- 在可能包含分时任务的情况下要进行判断
    • isStarted

      protected final boolean isStarted()
      分时任务是否启动
    • setStarted

      protected final void setStarted()
      将分时任务标记为已启动
    • getCtlBit

      protected final boolean getCtlBit(int mask)
      获取ctl中的某个bit
    • setCtlBit

      protected final void setCtlBit(int mask, boolean value)
      设置ctl中的某个bit
    • future

      public IPromise<V> future()
      获取任务绑的Promise - 允许子类重写返回值类型
      指定者:
      future 在接口中 IFutureTask<V>
    • clear

      public void clear()
    • runTimeSharing

      protected final void runTimeSharing() throws Exception
      运行分时任务
      抛出:
      Exception
    • runTask

      protected final V runTask() throws Exception
      运行其它类型任务
      抛出:
      Exception
    • run

      public void run()
      从接口复制的说明: IFutureTask
      run方法应当使IFutureTask.future()进入完成状态
      指定者:
      run 在接口中 IFutureTask<V>
      指定者:
      run 在接口中 Runnable
    • trySetCancelled

      protected static void trySetCancelled(IPromise<?> promise, IContext ctx)
    • trySetCancelled

      protected static void trySetCancelled(IPromise<?> promise, IContext ctx, int def)