public final class UnorderedThreadPoolEventExecutor extends java.util.concurrent.ScheduledThreadPoolExecutor implements EventExecutor
EventExecutor
implementation which makes no guarantees about the ordering of task execution that
are submitted because there may be multiple threads executing these tasks.
This implementation is most useful for protocols that do not need strict ordering.
Because it provides no ordering care should be taken when using it!java.util.concurrent.ThreadPoolExecutor.AbortPolicy, java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardPolicy
Constructor and Description |
---|
UnorderedThreadPoolEventExecutor(int corePoolSize)
|
UnorderedThreadPoolEventExecutor(int corePoolSize,
java.util.concurrent.RejectedExecutionHandler handler)
|
UnorderedThreadPoolEventExecutor(int corePoolSize,
java.util.concurrent.ThreadFactory threadFactory)
See
ScheduledThreadPoolExecutor.ScheduledThreadPoolExecutor(int, ThreadFactory) |
UnorderedThreadPoolEventExecutor(int corePoolSize,
java.util.concurrent.ThreadFactory threadFactory,
java.util.concurrent.RejectedExecutionHandler handler)
See
ScheduledThreadPoolExecutor.ScheduledThreadPoolExecutor(int, ThreadFactory, RejectedExecutionHandler) |
Modifier and Type | Method and Description |
---|---|
protected <V> java.util.concurrent.RunnableScheduledFuture<V> |
decorateTask(java.util.concurrent.Callable<V> callable,
java.util.concurrent.RunnableScheduledFuture<V> task) |
protected <V> java.util.concurrent.RunnableScheduledFuture<V> |
decorateTask(java.lang.Runnable runnable,
java.util.concurrent.RunnableScheduledFuture<V> task) |
void |
execute(java.lang.Runnable command) |
boolean |
inEventLoop()
Calls
EventExecutor.inEventLoop(Thread) with Thread.currentThread() as argument |
boolean |
inEventLoop(java.lang.Thread thread)
Return
true if the given Thread is executed in the event loop,
false otherwise. |
boolean |
isShuttingDown()
Returns
true if and only if this executor was started to be
shut down gracefuclly or was shut down. |
java.util.Iterator<EventExecutor> |
iterator()
Returns a read-only
Iterator over all EventExecutor , which are handled by this
EventExecutorGroup at the time of invoke this method. |
<V> Future<V> |
newFailedFuture(java.lang.Throwable cause)
Create a new
Future which is marked as fakued already. |
<V> ProgressivePromise<V> |
newProgressivePromise()
Create a new
ProgressivePromise . |
<V> Promise<V> |
newPromise()
Return a new
Promise . |
<V> Future<V> |
newSucceededFuture(V result)
Create a new
Future which is marked as successes already. |
EventExecutor |
next()
Returns a reference to itself.
|
EventExecutorGroup |
parent()
Return the
EventExecutorGroup which is the parent of this EventExecutor , |
<V> ScheduledFuture<V> |
schedule(java.util.concurrent.Callable<V> callable,
long delay,
java.util.concurrent.TimeUnit unit) |
ScheduledFuture<?> |
schedule(java.lang.Runnable command,
long delay,
java.util.concurrent.TimeUnit unit) |
ScheduledFuture<?> |
scheduleAtFixedRate(java.lang.Runnable command,
long initialDelay,
long period,
java.util.concurrent.TimeUnit unit) |
ScheduledFuture<?> |
scheduleWithFixedDelay(java.lang.Runnable command,
long initialDelay,
long delay,
java.util.concurrent.TimeUnit unit) |
void |
shutdown() |
Future<?> |
shutdownGracefully()
Shortcut method for
EventExecutorGroup.shutdownGracefully(long, long, TimeUnit) with sensible default values. |
Future<?> |
shutdownGracefully(long quietPeriod,
long timeout,
java.util.concurrent.TimeUnit unit)
Signals this executor that the caller wants the executor to be shut down.
|
java.util.List<java.lang.Runnable> |
shutdownNow() |
<T> Future<T> |
submit(java.util.concurrent.Callable<T> task) |
Future<?> |
submit(java.lang.Runnable task) |
<T> Future<T> |
submit(java.lang.Runnable task,
T result) |
Future<?> |
terminationFuture()
Returns the
Future which is notified when this executor has been terminated. |
getContinueExistingPeriodicTasksAfterShutdownPolicy, getExecuteExistingDelayedTasksAfterShutdownPolicy, getQueue, getRemoveOnCancelPolicy, setContinueExistingPeriodicTasksAfterShutdownPolicy, setExecuteExistingDelayedTasksAfterShutdownPolicy, setRemoveOnCancelPolicy
afterExecute, allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, beforeExecute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, terminated, toString
invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public UnorderedThreadPoolEventExecutor(int corePoolSize)
public UnorderedThreadPoolEventExecutor(int corePoolSize, java.util.concurrent.ThreadFactory threadFactory)
ScheduledThreadPoolExecutor.ScheduledThreadPoolExecutor(int, ThreadFactory)
public UnorderedThreadPoolEventExecutor(int corePoolSize, java.util.concurrent.RejectedExecutionHandler handler)
public UnorderedThreadPoolEventExecutor(int corePoolSize, java.util.concurrent.ThreadFactory threadFactory, java.util.concurrent.RejectedExecutionHandler handler)
ScheduledThreadPoolExecutor.ScheduledThreadPoolExecutor(int, ThreadFactory, RejectedExecutionHandler)
public EventExecutor next()
EventExecutor
next
in interface EventExecutor
next
in interface EventExecutorGroup
public EventExecutorGroup parent()
EventExecutor
EventExecutorGroup
which is the parent of this EventExecutor
,parent
in interface EventExecutor
public boolean inEventLoop()
EventExecutor
EventExecutor.inEventLoop(Thread)
with Thread.currentThread()
as argumentinEventLoop
in interface EventExecutor
public boolean inEventLoop(java.lang.Thread thread)
EventExecutor
true
if the given Thread
is executed in the event loop,
false
otherwise.inEventLoop
in interface EventExecutor
public <V> Promise<V> newPromise()
EventExecutor
Promise
.newPromise
in interface EventExecutor
public <V> ProgressivePromise<V> newProgressivePromise()
EventExecutor
ProgressivePromise
.newProgressivePromise
in interface EventExecutor
public <V> Future<V> newSucceededFuture(V result)
EventExecutor
Future
which is marked as successes already. So Future.isSuccess()
will return true
. All FutureListener
added to it will be notified directly. Also
every call of blocking methods will just return without blocking.newSucceededFuture
in interface EventExecutor
public <V> Future<V> newFailedFuture(java.lang.Throwable cause)
EventExecutor
Future
which is marked as fakued already. So Future.isSuccess()
will return false
. All FutureListener
added to it will be notified directly. Also
every call of blocking methods will just return without blocking.newFailedFuture
in interface EventExecutor
public boolean isShuttingDown()
EventExecutorGroup
true
if and only if this executor was started to be
shut down gracefuclly or was shut down.isShuttingDown
in interface EventExecutorGroup
public java.util.List<java.lang.Runnable> shutdownNow()
shutdownNow
in interface EventExecutorGroup
shutdownNow
in interface java.util.concurrent.ExecutorService
shutdownNow
in class java.util.concurrent.ScheduledThreadPoolExecutor
public void shutdown()
shutdown
in interface EventExecutorGroup
shutdown
in interface java.util.concurrent.ExecutorService
shutdown
in class java.util.concurrent.ScheduledThreadPoolExecutor
public Future<?> shutdownGracefully()
EventExecutorGroup
EventExecutorGroup.shutdownGracefully(long, long, TimeUnit)
with sensible default values.shutdownGracefully
in interface EventExecutorGroup
EventExecutorGroup.terminationFuture()
public Future<?> shutdownGracefully(long quietPeriod, long timeout, java.util.concurrent.TimeUnit unit)
EventExecutorGroup
EventExecutorGroup.isShuttingDown()
starts to return true
, and the executor prepares to shut itself down.
Unlike EventExecutorGroup.shutdown()
, graceful shutdown ensures that no tasks are submitted for 'the quiet period'
(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.shutdownGracefully
in interface EventExecutorGroup
quietPeriod
- the quiet period as described in the documentationtimeout
- the maximum amount of time to wait until the executor is EventExecutorGroup.shutdown()
regardless if a task was submitted during the quiet periodunit
- the unit of quietPeriod
and timeout
EventExecutorGroup.terminationFuture()
public Future<?> terminationFuture()
EventExecutorGroup
Future
which is notified when this executor has been terminated.terminationFuture
in interface EventExecutorGroup
public java.util.Iterator<EventExecutor> iterator()
EventExecutorGroup
Iterator
over all EventExecutor
, which are handled by this
EventExecutorGroup
at the time of invoke this method.iterator
in interface EventExecutorGroup
iterator
in interface java.lang.Iterable<EventExecutor>
protected <V> java.util.concurrent.RunnableScheduledFuture<V> decorateTask(java.lang.Runnable runnable, java.util.concurrent.RunnableScheduledFuture<V> task)
decorateTask
in class java.util.concurrent.ScheduledThreadPoolExecutor
protected <V> java.util.concurrent.RunnableScheduledFuture<V> decorateTask(java.util.concurrent.Callable<V> callable, java.util.concurrent.RunnableScheduledFuture<V> task)
decorateTask
in class java.util.concurrent.ScheduledThreadPoolExecutor
public ScheduledFuture<?> schedule(java.lang.Runnable command, long delay, java.util.concurrent.TimeUnit unit)
schedule
in interface EventExecutorGroup
schedule
in interface java.util.concurrent.ScheduledExecutorService
schedule
in class java.util.concurrent.ScheduledThreadPoolExecutor
public <V> ScheduledFuture<V> schedule(java.util.concurrent.Callable<V> callable, long delay, java.util.concurrent.TimeUnit unit)
schedule
in interface EventExecutorGroup
schedule
in interface java.util.concurrent.ScheduledExecutorService
schedule
in class java.util.concurrent.ScheduledThreadPoolExecutor
public ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable command, long initialDelay, long period, java.util.concurrent.TimeUnit unit)
scheduleAtFixedRate
in interface EventExecutorGroup
scheduleAtFixedRate
in interface java.util.concurrent.ScheduledExecutorService
scheduleAtFixedRate
in class java.util.concurrent.ScheduledThreadPoolExecutor
public ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable command, long initialDelay, long delay, java.util.concurrent.TimeUnit unit)
scheduleWithFixedDelay
in interface EventExecutorGroup
scheduleWithFixedDelay
in interface java.util.concurrent.ScheduledExecutorService
scheduleWithFixedDelay
in class java.util.concurrent.ScheduledThreadPoolExecutor
public Future<?> submit(java.lang.Runnable task)
submit
in interface EventExecutorGroup
submit
in interface java.util.concurrent.ExecutorService
submit
in class java.util.concurrent.ScheduledThreadPoolExecutor
public <T> Future<T> submit(java.lang.Runnable task, T result)
submit
in interface EventExecutorGroup
submit
in interface java.util.concurrent.ExecutorService
submit
in class java.util.concurrent.ScheduledThreadPoolExecutor
public <T> Future<T> submit(java.util.concurrent.Callable<T> task)
submit
in interface EventExecutorGroup
submit
in interface java.util.concurrent.ExecutorService
submit
in class java.util.concurrent.ScheduledThreadPoolExecutor
public void execute(java.lang.Runnable command)
execute
in interface java.util.concurrent.Executor
execute
in class java.util.concurrent.ScheduledThreadPoolExecutor
Copyright © 2008–2018 The Netty Project. All rights reserved.