java.lang.Object
cn.wjybxx.sequential.AbstractUniExecutor
cn.wjybxx.sequential.AbstractUniScheduledExecutor
cn.wjybxx.sequential.DefaultUniScheduledExecutor
- 所有已实现的接口:
IExecutor,IExecutorService,IScheduledExecutorService,UniExecutorService,UniScheduledExecutor,AutoCloseable,Executor,ExecutorService,ScheduledExecutorService
public class DefaultUniScheduledExecutor
extends AbstractUniScheduledExecutor
implements UniScheduledExecutor
- 作者:
- wjybxx date 2023/4/3
-
字段概要
从类继承的字段 cn.wjybxx.sequential.AbstractUniExecutor
logger -
构造器概要
构造器构造器说明DefaultUniScheduledExecutor(cn.wjybxx.base.time.TimeProvider timeProvider) DefaultUniScheduledExecutor(cn.wjybxx.base.time.TimeProvider timeProvider, int initCapacity) -
方法概要
修饰符和类型方法说明void在将来的某个时间执行给定的命令。boolean查询EventLoopGroup是否处于关闭状态。boolean查询EventLoopGroup是否处于正在关闭状态。boolean是否已进入终止状态,一旦进入终止状态,表示生命周期真正结束。boolean是否需要更多的Update。protected voidremoveScheduled(UniScheduledPromiseTask<?> futureTask) 请求删除给定的任务protected voidreSchedulePeriodic(UniScheduledPromiseTask<?> futureTask, boolean triggered) 请求将当前任务重新压入队列 1.一定从当前线程调用 2.如果无法继续调度任务,则取消任务voidshutdown()请求关闭 ExecutorService,不再接收新的任务。JDK文档: 请求关闭 ExecutorService,尝试取消所有正在执行的任务,停止所有待执行的任务,并不再接收新的任务。IFuture<?> 返回Future将在Executor终止时进入完成状态。protected longtickTime()当前线程的时间 1.voidupdate()心跳方法 外部需要每一帧调用该方法以执行任务。从类继承的方法 cn.wjybxx.sequential.AbstractUniScheduledExecutor
execute, execute, newScheduledPromise, schedule, schedule, schedule, scheduleAction, scheduleAtFixedRate, scheduleFunc, scheduleWithFixedDelay, submit, submit, submitAction, submitAction, submitAction, submitAction, submitFunc, submitFunc, submitFunc, submitFunc从类继承的方法 cn.wjybxx.sequential.AbstractUniExecutor
awaitTermination, execute, logCause, newPromise, safeExecute从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait从接口继承的方法 java.util.concurrent.ExecutorService
close从接口继承的方法 cn.wjybxx.concurrent.IExecutorService
awaitTermination, newPromise, submit, submit, submit, submit, submitAction, submitAction, submitAction, submitAction, submitFunc, submitFunc, submitFunc, submitFunc从接口继承的方法 cn.wjybxx.concurrent.IScheduledExecutorService
newScheduledPromise, schedule, schedule, schedule, scheduleAction, scheduleAtFixedRate, scheduleFunc, scheduleWithFixedDelay从接口继承的方法 cn.wjybxx.sequential.UniExecutorService
invokeAll, invokeAll, invokeAny, invokeAny
-
构造器详细资料
-
DefaultUniScheduledExecutor
public DefaultUniScheduledExecutor(cn.wjybxx.base.time.TimeProvider timeProvider) -
DefaultUniScheduledExecutor
public DefaultUniScheduledExecutor(cn.wjybxx.base.time.TimeProvider timeProvider, int initCapacity)
-
-
方法详细资料
-
update
public void update()从接口复制的说明:UniExecutorService心跳方法 外部需要每一帧调用该方法以执行任务。- 指定者:
update在接口中UniExecutorService
-
needMoreUpdate
public boolean needMoreUpdate()从接口复制的说明:UniExecutorService是否需要更多的Update。为避免死循环或占用过多cpu,单次
UniExecutorService.update()可能存在一些限制,因此可能未执行所有的可执行任务。 该方法用于探测是否还有可执行的任务,如果外部可以分配更多的资源。- 指定者:
needMoreUpdate在接口中UniExecutorService- 返回:
- 如果还有可执行任务则返回true,否则返回false
-
execute
从接口复制的说明:IExecutor在将来的某个时间执行给定的命令。 命令可以在新线程中执行,也可以在池线程中执行,或者在调用线程中执行,这由Executor实现决定。Executor.execute(Runnable) -
shutdown
public void shutdown()从接口复制的说明:IExecutorService请求关闭 ExecutorService,不再接收新的任务。 ExecutorService在执行完现有任务后,进入关闭状态。 如果 ExecutorService 正在关闭,或已经关闭,则方法不产生任何效果。该方法会立即返回,如果想等待 ExecutorService 进入终止状态, 可以使用
IExecutorService.awaitTermination(long, TimeUnit)或IExecutorService.terminationFuture()进行等待- 指定者:
shutdown在接口中ExecutorService- 指定者:
shutdown在接口中IExecutorService
-
shutdownNow
从接口复制的说明:IExecutorServiceJDK文档: 请求关闭 ExecutorService,尝试取消所有正在执行的任务,停止所有待执行的任务,并不再接收新的任务。 如果 ExecutorService 已经关闭,则方法不产生任何效果。该方法会立即返回,如果想等待 ExecutorService 进入终止状态,可以使用
IExecutorService.awaitTermination(long, TimeUnit)或IExecutorService.terminationFuture()进行等待。- 指定者:
shutdownNow在接口中ExecutorService- 指定者:
shutdownNow在接口中IExecutorService- 返回:
- 被取消的任务
-
isShuttingDown
public boolean isShuttingDown()从接口复制的说明:IExecutorService查询EventLoopGroup是否处于正在关闭状态。 正在关闭状态下,拒绝接收新任务,当执行完所有任务后,进入关闭状态。- 指定者:
isShuttingDown在接口中IExecutorService- 返回:
- 如果该
EventLoopGroup管理的所有EventLoop正在关闭或已关闭则返回true
-
isShutdown
public boolean isShutdown()从接口复制的说明:IExecutorService查询EventLoopGroup是否处于关闭状态。 关闭状态下,拒绝接收新任务,执行退出前的清理操作,执行完清理操作后,进入终止状态。- 指定者:
isShutdown在接口中ExecutorService- 指定者:
isShutdown在接口中IExecutorService- 返回:
- 如果已关闭,则返回true
-
isTerminated
public boolean isTerminated()从接口复制的说明:IExecutorService是否已进入终止状态,一旦进入终止状态,表示生命周期真正结束。- 指定者:
isTerminated在接口中ExecutorService- 指定者:
isTerminated在接口中IExecutorService- 返回:
- 如果已处于终止状态,则返回true
-
terminationFuture
从接口复制的说明:IExecutorService返回Future将在Executor终止时进入完成状态。 1. 返回Future应当是只读的,IFuture.asReadonly()2. 用户可以在该Future上等待。- 指定者:
terminationFuture在接口中IExecutorService
-
tickTime
protected long tickTime()从类复制的说明:AbstractUniScheduledExecutor当前线程的时间 1. 可以使用缓存的时间,也可以使用实时查询,只要不破坏任务的执行约定即可。 2. 如果使用缓存时间,接口中并不约定时间的更新时机,也不约定一个大循环只更新一次。也就是说,线程可能在任意时间点更新缓存的时间,只要不破坏线程安全性和约定的任务时序。- 指定者:
tickTime在类中AbstractUniScheduledExecutor
-
reSchedulePeriodic
从类复制的说明:AbstractUniScheduledExecutor请求将当前任务重新压入队列 1.一定从当前线程调用 2.如果无法继续调度任务,则取消任务- 指定者:
reSchedulePeriodic在类中AbstractUniScheduledExecutor- 参数:
triggered- 是否是执行之后压入队列;通常用于在执行成功之后降低优先级
-
removeScheduled
从类复制的说明:AbstractUniScheduledExecutor请求删除给定的任务
-