接口 ICancelTokenSource

所有超级接口:
ICancelToken
所有已知实现类:
CancelTokenSource, UniCancelTokenSource

public interface ICancelTokenSource extends ICancelToken
取消令牌源由任务的创建者(发起者)持有,具备取消权限。

ps:ICancelTokenSourceICancelToken之间的关系, 其实就是IPromiseIFuture之间的关系, 取消信号的传递是本就可以通过IFuture实现的,只是语义上不那么清楚。

作者:
wjybxx date - 2024/1/8
  • 方法详细资料

    • cancel

      int cancel(int cancelCode)
      将Token置为取消状态
      参数:
      cancelCode - 取消码;reason部分需大于0;辅助类CancelCodeBuilder
      返回:
      如果Token已被取消,则返回旧值(非0);如果Token尚未被取消,则将Token更新为取消状态,并返回0。
      抛出:
      IllegalArgumentException - 如果code小于等于0;或reason部分为0
    • cancel

      default int cancel()
      使用默认原因取消
    • cancel

      default int cancel(boolean mayInterruptIfRunning)
      该方法主要用于兼容JDK
      参数:
      mayInterruptIfRunning - 是否可以中断目标线程;注意该参数由任务自身处理,且任务监听了取消信号才有用
    • cancelAfter

      void cancelAfter(int cancelCode, long millisecondsDelay)
      在一段时间后发送取消命令
      参数:
      cancelCode - 取消码
      millisecondsDelay - 延迟时间(毫秒) -- 单线程版的话,真实单位取决于约定。
    • cancelAfter

      void cancelAfter(int cancelCode, long delay, TimeUnit timeUnit)
      在一段时间后发送取消命令
      参数:
      cancelCode - 取消码
      delay - 延迟时间
      timeUnit - 时间单位
    • newInstance

      ICancelTokenSource newInstance(boolean copyCode)
      创建一个同类型实例。 1.原型对象,避免具体类型依赖。 2.默认情况下,其它上下文应当拷贝。
      参数:
      copyCode - 是否拷贝当前取消码
      返回:
      取消令牌
    • newInstance

      default ICancelTokenSource newInstance()