类 TaskOptions

java.lang.Object
cn.wjybxx.base.concurrent.TaskOptions

public final class TaskOptions extends Object
任务调度选项
作者:
wjybxx date 2023/4/14
  • 字段概要

    字段
    修饰符和类型
    字段
    说明
    static final int
    延时任务:在出现异常后继续执行。
    static final int
    本地序(可以与其它线程无序) 对于EventLoop内部的任务,启用该特征值可跳过全局队列,这在EventLoop是有界的情况下可以避免死锁或阻塞。
    static final int
    调度器使用的控制标识位(低8位) 调度器会擦除掉用户的低8位,存储调度器的信息
    static final int
    延时任务的优先级,取值[0, 31] 1.
    static final int
    任务的调度阶段,取值[0, 31]。
    static final int
    优先级的最大值
    static final int
    调度阶段的最大值
    static final int
    优先级的存储偏移量
    static final int
    优先级的存储偏移量
    static final int
    事件循环在执行该任务前必须先处理一次定时任务队列。
    static final int
    监听用户上下文中包含的取消令牌
    static final int
    如果一个异步任务当前已在目标SingleThreadExecutor线程,则立即执行,而不提交任务。
    static final int
    默认情况下,Stage会在触发回调之前检测ctx否为IContextICancelToken类型,并检测取消信号。
    static final int
    延时任务:在执行任务前检测超时 1.
    static final int
    唤醒事件循环线程 事件循环线程可能阻塞某些操作上,如果一个任务需要EventLoop及时处理,则可以启用该选项唤醒线程。
  • 构造器概要

    构造器
    构造器
    说明
     
  • 方法概要

    修饰符和类型
    方法
    说明
    static int
    disable(int flags, int option)
    禁用特定调度选项
    static int
    enable(int flags, int option)
    启用特定调度选项
    static int
    getPriority(int options)
    获取任务的优先级
    static int
    getSchedulePhase(int options)
    获取任务的调度阶段
    static boolean
    isDisabled(int flags, int option)
    是否未启用选项。
    static boolean
    isEnabled(int flags, int option)
    是否启用了所有选项
    static int
    setEnable(int flags, int option, boolean enable)
    启用或关闭特定选项
    static int
    setPriority(int options, int priority)
    设置优先级
    static int
    setSchedulePhase(int options, int phase)
    设置任务的调度阶段

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 字段详细资料

    • OFFSET_PRIORITY

      public static final int OFFSET_PRIORITY
      优先级的存储偏移量
      另请参阅:
    • OFFSET_SCHEDULE_PHASE

      public static final int OFFSET_SCHEDULE_PHASE
      优先级的存储偏移量
      另请参阅:
    • MAX_PRIORITY

      public static final int MAX_PRIORITY
      优先级的最大值
      另请参阅:
    • MAX_SCHEDULE_PHASE

      public static final int MAX_SCHEDULE_PHASE
      调度阶段的最大值
      另请参阅:
    • MASK_CTL_RESERVED

      public static final int MASK_CTL_RESERVED
      调度器使用的控制标识位(低8位) 调度器会擦除掉用户的低8位,存储调度器的信息
      另请参阅:
    • MASK_PRIORITY

      public static final int MASK_PRIORITY
      延时任务的优先级,取值[0, 31] 1. 当任务的触发时间相同时,按照优先级排序,值越低优先级越高。 2. 由于0需要表示未设置优先级,因此Executor会对值进行偏移,通常而言是减1。 3. 优先级值的约定取决于各自的实现。
      另请参阅:
    • MASK_SCHEDULE_PHASE

      public static final int MASK_SCHEDULE_PHASE
      任务的调度阶段,取值[0, 31]。 1. 用于指定异步任务的调度时机。 2. 主要用于SingleThreadExecutor这类单线程的Executor -- 尤其是游戏这类分阶段的事件循环。
      另请参阅:
    • SCHEDULE_BARRIER

      public static final int SCHEDULE_BARRIER
      事件循环在执行该任务前必须先处理一次定时任务队列。 1. EventLoop收到具有该特征的任务时,需要更新时间戳,尝试执行该任务之前的所有定时任务。 2. 该选项不一定能保证时序,因为存在时序依赖的任务可能同时提交成功。
      另请参阅:
    • LOCAL_ORDER

      public static final int LOCAL_ORDER
      本地序(可以与其它线程无序) 对于EventLoop内部的任务,启用该特征值可跳过全局队列,这在EventLoop是有界的情况下可以避免死锁或阻塞。
      另请参阅:
    • WAKEUP_THREAD

      public static final int WAKEUP_THREAD
      唤醒事件循环线程 事件循环线程可能阻塞某些操作上,如果一个任务需要EventLoop及时处理,则可以启用该选项唤醒线程。
      另请参阅:
    • CAUGHT_EXCEPTION

      public static final int CAUGHT_EXCEPTION
      延时任务:在出现异常后继续执行。 1.只适用无需结果的周期性任务 -- 分时任务会失败。 2.如果需要取消任务,需通过取消令牌实现。
      另请参阅:
    • TIMEOUT_BEFORE_RUN

      public static final int TIMEOUT_BEFORE_RUN
      延时任务:在执行任务前检测超时 1. 也就是说在已经超时的情况下不执行任务。 2. 在执行后一定会检测一次超时。
      另请参阅:
    • STAGE_TRY_INLINE

      public static final int STAGE_TRY_INLINE
      如果一个异步任务当前已在目标SingleThreadExecutor线程,则立即执行,而不提交任务。
      另请参阅:
    • STAGE_UNCANCELLABLE_CTX

      public static final int STAGE_UNCANCELLABLE_CTX
      默认情况下,Stage会在触发回调之前检测ctx否为IContextICancelToken类型,并检测取消信号。 用户如果不期望Stage进行检查,可启用该选项关闭自动检测。
      另请参阅:
    • STAGE_LISTEN_CANCEL_TOKEN

      public static final int STAGE_LISTEN_CANCEL_TOKEN
      监听用户上下文中包含的取消令牌

      1.该选项用于延时任务或监听器列表管理。 2.如果调度器默认不会监听CTX中的取消令牌,那么应当响应用户的该选项。

      另请参阅:
  • 构造器详细资料

    • TaskOptions

      public TaskOptions()
  • 方法详细资料

    • isEnabled

      public static boolean isEnabled(int flags, int option)
      是否启用了所有选项
    • isDisabled

      public static boolean isDisabled(int flags, int option)
      是否未启用选项。 1.禁用任意bit即为未启用; 2.和isEnabled(int, int)相反关系
    • enable

      public static int enable(int flags, int option)
      启用特定调度选项
    • disable

      public static int disable(int flags, int option)
      禁用特定调度选项
    • setEnable

      public static int setEnable(int flags, int option, boolean enable)
      启用或关闭特定选项
    • getPriority

      public static int getPriority(int options)
      获取任务的优先级
    • setPriority

      public static int setPriority(int options, int priority)
      设置优先级
    • getSchedulePhase

      public static int getSchedulePhase(int options)
      获取任务的调度阶段
    • setSchedulePhase

      public static int setSchedulePhase(int options, int phase)
      设置任务的调度阶段