EventExecutorGroup Type — netty Architecture
Architecture documentation for the EventExecutorGroup type/interface in EventExecutorGroup.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 18ee8ca6_91ae_a1b7_b8bd_9c0a9bc221a8["EventExecutorGroup"] 887d643c_94df_9949_731b_d60862c366cc["EventExecutorGroup.java"] 18ee8ca6_91ae_a1b7_b8bd_9c0a9bc221a8 -->|defined in| 887d643c_94df_9949_731b_d60862c366cc style 18ee8ca6_91ae_a1b7_b8bd_9c0a9bc221a8 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
common/src/main/java/io/netty/util/concurrent/EventExecutorGroup.java lines 30–122
public interface EventExecutorGroup extends ScheduledExecutorService, Iterable<EventExecutor> {
/**
* Returns {@code true} if and only if all {@link EventExecutor}s managed by this {@link EventExecutorGroup}
* are being {@linkplain #shutdownGracefully() shut down gracefully} or was {@linkplain #isShutdown() shut down}.
*/
boolean isShuttingDown();
/**
* Shortcut method for {@link #shutdownGracefully(long, long, TimeUnit)} with sensible default values.
*
* @return the {@link #terminationFuture()}
*/
Future<?> shutdownGracefully();
/**
* Signals this executor that the caller wants the executor to be shut down. Once this method is called,
* {@link #isShuttingDown()} starts to return {@code true}, and the executor prepares to shut itself down.
* Unlike {@link #shutdown()}, graceful shutdown ensures that no tasks are submitted for <i>'the quiet period'</i>
* (usually a couple seconds) before it shuts itself down. If a task is submitted during the quiet period,
* it is guaranteed to be accepted and the quiet period will start over.
*
* @param quietPeriod the quiet period as described in the documentation
* @param timeout the maximum amount of time to wait until the executor is {@linkplain #shutdown()}
* regardless if a task was submitted during the quiet period
* @param unit the unit of {@code quietPeriod} and {@code timeout}
*
* @return the {@link #terminationFuture()}
*/
Future<?> shutdownGracefully(long quietPeriod, long timeout, TimeUnit unit);
/**
* Returns the {@link Future} which is notified when all {@link EventExecutor}s managed by this
* {@link EventExecutorGroup} have been terminated.
*/
Future<?> terminationFuture();
/**
* @deprecated {@link #shutdownGracefully(long, long, TimeUnit)} or {@link #shutdownGracefully()} instead.
*/
@Override
@Deprecated
void shutdown();
/**
* @deprecated {@link #shutdownGracefully(long, long, TimeUnit)} or {@link #shutdownGracefully()} instead.
*/
@Override
@Deprecated
List<Runnable> shutdownNow();
/**
* Returns one of the {@link EventExecutor}s managed by this {@link EventExecutorGroup}.
*/
EventExecutor next();
@Override
Iterator<EventExecutor> iterator();
@Override
Future<?> submit(Runnable task);
@Override
<T> Future<T> submit(Runnable task, T result);
@Override
<T> Future<T> submit(Callable<T> task);
/**
* The ticker for this executor. Usually the {@link #schedule} methods will follow the
* {@link Ticker#systemTicker() system ticker} (i.e. {@link System#nanoTime()}), but especially for testing it is
* sometimes useful to have more control over the ticker. In that case, this method will be overridden. Code that
* schedules tasks on this executor should use this ticker in order to stay consistent with the executor (e.g. not
* be surprised by scheduled tasks running "early").
*
* @return The ticker for this scheduler
*/
default Ticker ticker() {
return Ticker.systemTicker();
}
Source
Frequently Asked Questions
What is the EventExecutorGroup type?
EventExecutorGroup is a type/interface in the netty codebase, defined in common/src/main/java/io/netty/util/concurrent/EventExecutorGroup.java.
Where is EventExecutorGroup defined?
EventExecutorGroup is defined in common/src/main/java/io/netty/util/concurrent/EventExecutorGroup.java at line 30.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free