- 所有超级接口:
AutoCloseable,Executor,ExecutorService,IExecutor
- 所有已知子接口:
EventLoop,EventLoopGroup,FixedEventLoopGroup,IScheduledExecutorService,UniExecutorService,UniScheduledExecutor
- 所有已知实现类:
AbstractEventLoop,AbstractEventLoopGroup,AbstractUniExecutor,AbstractUniScheduledExecutor,DefaultFixedEventLoopGroup,DefaultUniExecutor,DefaultUniScheduledExecutor,DisruptorEventLoop
命名:我们使用清晰的命名后缀,以免使用lambda时的语义不清。
Action表示无返回值的函数,Function表示有返回值的函数。
- 作者:
- wjybxx date - 2024/1/9
-
方法概要
修饰符和类型方法说明booleanawaitTermination(long timeout, TimeUnit unit) 等待 ExecutorService 进入终止状态 等同于在terminationFuture()进行阻塞操作。invokeAll(Collection<? extends Callable<T>> tasks) invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) <T> TinvokeAny(Collection<? extends Callable<T>> tasks) <T> TinvokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) boolean查询EventLoopGroup是否处于关闭状态。boolean查询EventLoopGroup是否处于正在关闭状态。boolean是否已进入终止状态,一旦进入终止状态,表示生命周期真正结束。default <T> IPromise<T> 创建一个promise以用于任务调度 如果当前Executor是SingleThreadExecutor,返回的future将禁止在当前EventLoop上执行阻塞操作。voidshutdown()请求关闭 ExecutorService,不再接收新的任务。JDK文档: 请求关闭 ExecutorService,尝试取消所有正在执行的任务,停止所有待执行的任务,并不再接收新的任务。<T> IFuture<T> submit(TaskBuilder<T> builder) default IFuture<?> 已过时。default <T> IFuture<T> 已过时。<T> IFuture<T> IFuture<?> submitAction(Runnable task) IFuture<?> submitAction(Runnable task, int options) IFuture<?> submitAction(Consumer<? super IContext> task, IContext ctx) IFuture<?> submitAction(Consumer<? super IContext> task, IContext ctx, int options) <T> IFuture<T> submitFunc(Callable<? extends T> task) <T> IFuture<T> submitFunc(Callable<? extends T> task, int options) <T> IFuture<T> submitFunc(Function<? super IContext, ? extends T> task, IContext ctx) <T> IFuture<T> submitFunc(Function<? super IContext, ? extends T> task, IContext ctx, int options) IFuture<?> 返回Future将在Executor终止时进入完成状态。从接口继承的方法 java.util.concurrent.ExecutorService
close
-
方法详细资料
-
isShuttingDown
boolean isShuttingDown()查询EventLoopGroup是否处于正在关闭状态。 正在关闭状态下,拒绝接收新任务,当执行完所有任务后,进入关闭状态。- 返回:
- 如果该
EventLoopGroup管理的所有EventLoop正在关闭或已关闭则返回true
-
isShutdown
boolean isShutdown()查询EventLoopGroup是否处于关闭状态。 关闭状态下,拒绝接收新任务,执行退出前的清理操作,执行完清理操作后,进入终止状态。- 指定者:
isShutdown在接口中ExecutorService- 返回:
- 如果已关闭,则返回true
-
isTerminated
boolean isTerminated()是否已进入终止状态,一旦进入终止状态,表示生命周期真正结束。- 指定者:
isTerminated在接口中ExecutorService- 返回:
- 如果已处于终止状态,则返回true
-
terminationFuture
IFuture<?> terminationFuture()返回Future将在Executor终止时进入完成状态。 1. 返回Future应当是只读的,IFuture.asReadonly()2. 用户可以在该Future上等待。 -
awaitTermination
等待 ExecutorService 进入终止状态 等同于在terminationFuture()进行阻塞操作。- 指定者:
awaitTermination在接口中ExecutorService- 参数:
timeout- 时间度量unit- 事件单位- 返回:
- 在方法返回前是否已进入终止状态
- 抛出:
InterruptedException- 如果在等待期间线程被中断,则抛出该异常。
-
shutdown
void shutdown()请求关闭 ExecutorService,不再接收新的任务。 ExecutorService在执行完现有任务后,进入关闭状态。 如果 ExecutorService 正在关闭,或已经关闭,则方法不产生任何效果。该方法会立即返回,如果想等待 ExecutorService 进入终止状态, 可以使用
awaitTermination(long, TimeUnit)或terminationFuture()进行等待- 指定者:
shutdown在接口中ExecutorService
-
shutdownNow
JDK文档: 请求关闭 ExecutorService,尝试取消所有正在执行的任务,停止所有待执行的任务,并不再接收新的任务。 如果 ExecutorService 已经关闭,则方法不产生任何效果。该方法会立即返回,如果想等待 ExecutorService 进入终止状态,可以使用
awaitTermination(long, TimeUnit)或terminationFuture()进行等待。- 指定者:
shutdownNow在接口中ExecutorService- 返回:
- 被取消的任务
-
newPromise
创建一个promise以用于任务调度 如果当前Executor是SingleThreadExecutor,返回的future将禁止在当前EventLoop上执行阻塞操作。 -
submit
-
submit
- 指定者:
submit在接口中ExecutorService
-
submitFunc
-
submitFunc
-
submitFunc
-
submitFunc
-
submitAction
-
submitAction
-
submitAction
-
submitAction
-
submit
已过时。从Java引入lambda开始,对接收函数式接口的方法进行重载时,必须要具备明显的差异才可。 如果接口的差异过小,建议使用不同的方法名,而不是重载。- 指定者:
submit在接口中ExecutorService
-
submit
已过时。- 指定者:
submit在接口中ExecutorService
-
invokeAll
@Nonnull <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException - 指定者:
invokeAll在接口中ExecutorService- 抛出:
InterruptedException
-
invokeAll
@Nonnull <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException - 指定者:
invokeAll在接口中ExecutorService- 抛出:
InterruptedException
-
invokeAny
@Nonnull <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException - 指定者:
invokeAny在接口中ExecutorService- 抛出:
InterruptedExceptionExecutionException
-
invokeAny
<T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
-
submitAction(Runnable)}