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, setRemoveOnCancelPolicyafterExecute, 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, toStringinvokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskForclone, equals, getClass, hashCode, notify, notifyAll, wait, wait, waitpublic 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()
EventExecutornext in interface EventExecutornext in interface EventExecutorGrouppublic EventExecutorGroup parent()
EventExecutorEventExecutorGroup which is the parent of this EventExecutor,parent in interface EventExecutorpublic boolean inEventLoop()
EventExecutorEventExecutor.inEventLoop(Thread) with Thread.currentThread() as argumentinEventLoop in interface EventExecutorpublic boolean inEventLoop(java.lang.Thread thread)
EventExecutortrue if the given Thread is executed in the event loop,
false otherwise.inEventLoop in interface EventExecutorpublic <V> Promise<V> newPromise()
EventExecutorPromise.newPromise in interface EventExecutorpublic <V> ProgressivePromise<V> newProgressivePromise()
EventExecutorProgressivePromise.newProgressivePromise in interface EventExecutorpublic <V> Future<V> newSucceededFuture(V result)
EventExecutorFuture 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 EventExecutorpublic <V> Future<V> newFailedFuture(java.lang.Throwable cause)
EventExecutorFuture 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 EventExecutorpublic boolean isShuttingDown()
EventExecutorGrouptrue if and only if this executor was started to be
shut down gracefuclly or was shut down.isShuttingDown in interface EventExecutorGrouppublic java.util.List<java.lang.Runnable> shutdownNow()
shutdownNow in interface EventExecutorGroupshutdownNow in interface java.util.concurrent.ExecutorServiceshutdownNow in class java.util.concurrent.ScheduledThreadPoolExecutorpublic void shutdown()
shutdown in interface EventExecutorGroupshutdown in interface java.util.concurrent.ExecutorServiceshutdown in class java.util.concurrent.ScheduledThreadPoolExecutorpublic Future<?> shutdownGracefully()
EventExecutorGroupEventExecutorGroup.shutdownGracefully(long, long, TimeUnit) with sensible default values.shutdownGracefully in interface EventExecutorGroupEventExecutorGroup.terminationFuture()public Future<?> shutdownGracefully(long quietPeriod, long timeout, java.util.concurrent.TimeUnit unit)
EventExecutorGroupEventExecutorGroup.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 EventExecutorGroupquietPeriod - 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 timeoutEventExecutorGroup.terminationFuture()public Future<?> terminationFuture()
EventExecutorGroupFuture which is notified when this executor has been terminated.terminationFuture in interface EventExecutorGrouppublic java.util.Iterator<EventExecutor> iterator()
EventExecutorGroupIterator over all EventExecutor, which are handled by this
EventExecutorGroup at the time of invoke this method.iterator in interface EventExecutorGroupiterator 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.ScheduledThreadPoolExecutorprotected <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.ScheduledThreadPoolExecutorpublic ScheduledFuture<?> schedule(java.lang.Runnable command, long delay, java.util.concurrent.TimeUnit unit)
schedule in interface EventExecutorGroupschedule in interface java.util.concurrent.ScheduledExecutorServiceschedule in class java.util.concurrent.ScheduledThreadPoolExecutorpublic <V> ScheduledFuture<V> schedule(java.util.concurrent.Callable<V> callable, long delay, java.util.concurrent.TimeUnit unit)
schedule in interface EventExecutorGroupschedule in interface java.util.concurrent.ScheduledExecutorServiceschedule in class java.util.concurrent.ScheduledThreadPoolExecutorpublic ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable command, long initialDelay, long period, java.util.concurrent.TimeUnit unit)
scheduleAtFixedRate in interface EventExecutorGroupscheduleAtFixedRate in interface java.util.concurrent.ScheduledExecutorServicescheduleAtFixedRate in class java.util.concurrent.ScheduledThreadPoolExecutorpublic ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable command, long initialDelay, long delay, java.util.concurrent.TimeUnit unit)
scheduleWithFixedDelay in interface EventExecutorGroupscheduleWithFixedDelay in interface java.util.concurrent.ScheduledExecutorServicescheduleWithFixedDelay in class java.util.concurrent.ScheduledThreadPoolExecutorpublic Future<?> submit(java.lang.Runnable task)
submit in interface EventExecutorGroupsubmit in interface java.util.concurrent.ExecutorServicesubmit in class java.util.concurrent.ScheduledThreadPoolExecutorpublic <T> Future<T> submit(java.lang.Runnable task, T result)
submit in interface EventExecutorGroupsubmit in interface java.util.concurrent.ExecutorServicesubmit in class java.util.concurrent.ScheduledThreadPoolExecutorpublic <T> Future<T> submit(java.util.concurrent.Callable<T> task)
submit in interface EventExecutorGroupsubmit in interface java.util.concurrent.ExecutorServicesubmit in class java.util.concurrent.ScheduledThreadPoolExecutorpublic void execute(java.lang.Runnable command)
execute in interface java.util.concurrent.Executorexecute in class java.util.concurrent.ScheduledThreadPoolExecutorCopyright © 2008–2018 The Netty Project. All rights reserved.