- 所有超级接口:
ICancelToken
- 所有已知实现类:
CancelTokenSource,UniCancelTokenSource
取消令牌源由任务的创建者(发起者)持有,具备取消权限。
ps:ICancelTokenSource和ICancelToken之间的关系,
其实就是IPromise和IFuture之间的关系,
取消信号的传递是本就可以通过IFuture实现的,只是语义上不那么清楚。
- 作者:
- wjybxx date - 2024/1/8
-
字段概要
从接口继承的字段 cn.wjybxx.concurrent.ICancelToken
NONE -
方法概要
修饰符和类型方法说明default intcancel()使用默认原因取消default intcancel(boolean mayInterruptIfRunning) 该方法主要用于兼容JDKintcancel(int cancelCode) 将Token置为取消状态voidcancelAfter(int cancelCode, long millisecondsDelay) 在一段时间后发送取消命令voidcancelAfter(int cancelCode, long delay, TimeUnit timeUnit) 在一段时间后发送取消命令default ICancelTokenSourcenewInstance(boolean copyCode) 创建一个同类型实例。从接口继承的方法 cn.wjybxx.concurrent.ICancelToken
asReadonly, canBeCancelled, cancelCode, checkCancel, degree, isCancelling, isInterruptible, isWithoutRemove, reason, thenAccept, thenAccept, thenAccept, thenAccept, thenAcceptAsync, thenAcceptAsync, thenAcceptAsync, thenAcceptAsync, thenNotify, thenNotify, thenNotifyAsync, thenNotifyAsync, thenRun, thenRun, thenRun, thenRun, thenRunAsync, thenRunAsync, thenRunAsync, thenRunAsync, thenTransferTo, thenTransferTo, thenTransferToAsync, thenTransferToAsync
-
方法详细资料
-
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
在一段时间后发送取消命令- 参数:
cancelCode- 取消码delay- 延迟时间timeUnit- 时间单位
-
newInstance
创建一个同类型实例。 1.原型对象,避免具体类型依赖。 2.默认情况下,其它上下文应当拷贝。- 参数:
copyCode- 是否拷贝当前取消码- 返回:
- 取消令牌
-
newInstance
-