Package org.apache.mina.filter.executor
Class UnorderedThreadPoolExecutor
- java.lang.Object
-
- java.util.concurrent.AbstractExecutorService
-
- java.util.concurrent.ThreadPoolExecutor
-
- org.apache.mina.filter.executor.UnorderedThreadPoolExecutor
-
- All Implemented Interfaces:
java.util.concurrent.Executor,java.util.concurrent.ExecutorService
public class UnorderedThreadPoolExecutor extends java.util.concurrent.ThreadPoolExecutorAThreadPoolExecutorthat does not maintain the order ofIoEvents. This means more than one event handler methods can be invoked at the same time with mixed order. For example, let's assume that messageReceived, messageSent, and sessionClosed events are fired.- All event handler methods can be called simultaneously. (e.g. messageReceived and messageSent can be invoked at the same time.)
- The event order can be mixed up. (e.g. sessionClosed or messageSent can be invoked before messageReceived is invoked.)
OrderedThreadPoolExecutor.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classUnorderedThreadPoolExecutor.Worker-
Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor
java.util.concurrent.ThreadPoolExecutor.AbortPolicy, java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardPolicy
-
-
Field Summary
Fields Modifier and Type Field Description private longcompletedTaskCountprivate intcorePoolSizeprivate static java.lang.RunnableEXIT_SIGNALprivate java.util.concurrent.atomic.AtomicIntegeridleWorkersprivate intlargestPoolSizeprivate intmaximumPoolSizeprivate IoEventQueueHandlerqueueHandlerprivate booleanshutdownprivate java.util.Set<UnorderedThreadPoolExecutor.Worker>workers
-
Constructor Summary
Constructors Constructor Description UnorderedThreadPoolExecutor()Creates a new UnorderedThreadPoolExecutor instanceUnorderedThreadPoolExecutor(int maximumPoolSize)Creates a new UnorderedThreadPoolExecutor instanceUnorderedThreadPoolExecutor(int corePoolSize, int maximumPoolSize)Creates a new UnorderedThreadPoolExecutor instanceUnorderedThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit)Creates a new UnorderedThreadPoolExecutor instanceUnorderedThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, java.util.concurrent.ThreadFactory threadFactory)Creates a new UnorderedThreadPoolExecutor instanceUnorderedThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, java.util.concurrent.ThreadFactory threadFactory, IoEventQueueHandler queueHandler)Creates a new UnorderedThreadPoolExecutor instanceUnorderedThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, IoEventQueueHandler queueHandler)Creates a new UnorderedThreadPoolExecutor instance
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddWorker()private voidaddWorkerIfNecessary()booleanawaitTermination(long timeout, java.util.concurrent.TimeUnit unit)private voidcheckTaskType(java.lang.Runnable task)voidexecute(java.lang.Runnable task)intgetActiveCount()longgetCompletedTaskCount()intgetCorePoolSize()intgetLargestPoolSize()intgetMaximumPoolSize()intgetPoolSize()IoEventQueueHandlergetQueueHandler()longgetTaskCount()booleanisShutdown()booleanisTerminated()booleanisTerminating()intprestartAllCoreThreads()booleanprestartCoreThread()voidpurge()private voidrejectTask(java.lang.Runnable task)booleanremove(java.lang.Runnable task)private voidremoveWorker()voidsetCorePoolSize(int corePoolSize)voidsetMaximumPoolSize(int maximumPoolSize)voidsetRejectedExecutionHandler(java.util.concurrent.RejectedExecutionHandler handler)voidshutdown()java.util.List<java.lang.Runnable>shutdownNow()-
Methods inherited from class java.util.concurrent.ThreadPoolExecutor
afterExecute, allowCoreThreadTimeOut, allowsCoreThreadTimeOut, beforeExecute, finalize, getKeepAliveTime, getQueue, getRejectedExecutionHandler, getThreadFactory, setKeepAliveTime, setThreadFactory, terminated, toString
-
-
-
-
Field Detail
-
EXIT_SIGNAL
private static final java.lang.Runnable EXIT_SIGNAL
-
workers
private final java.util.Set<UnorderedThreadPoolExecutor.Worker> workers
-
corePoolSize
private volatile int corePoolSize
-
maximumPoolSize
private volatile int maximumPoolSize
-
largestPoolSize
private volatile int largestPoolSize
-
idleWorkers
private final java.util.concurrent.atomic.AtomicInteger idleWorkers
-
completedTaskCount
private long completedTaskCount
-
shutdown
private volatile boolean shutdown
-
queueHandler
private final IoEventQueueHandler queueHandler
-
-
Constructor Detail
-
UnorderedThreadPoolExecutor
public UnorderedThreadPoolExecutor()
Creates a new UnorderedThreadPoolExecutor instance
-
UnorderedThreadPoolExecutor
public UnorderedThreadPoolExecutor(int maximumPoolSize)
Creates a new UnorderedThreadPoolExecutor instance- Parameters:
maximumPoolSize- The maximum number of threads in the pool
-
UnorderedThreadPoolExecutor
public UnorderedThreadPoolExecutor(int corePoolSize, int maximumPoolSize)Creates a new UnorderedThreadPoolExecutor instance- Parameters:
corePoolSize- The initial threads pool sizemaximumPoolSize- The maximum number of threads in the pool
-
UnorderedThreadPoolExecutor
public UnorderedThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit)Creates a new UnorderedThreadPoolExecutor instance- Parameters:
corePoolSize- The initial threads pool sizemaximumPoolSize- The maximum number of threads in the poolkeepAliveTime- The time to keep threads aliveunit- The time unit for the keepAliveTime
-
UnorderedThreadPoolExecutor
public UnorderedThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, IoEventQueueHandler queueHandler)Creates a new UnorderedThreadPoolExecutor instance- Parameters:
corePoolSize- The initial threads pool sizemaximumPoolSize- The maximum number of threads in the poolkeepAliveTime- The time to keep threads aliveunit- The time unit for the keepAliveTimequeueHandler- The Event queue handler to use
-
UnorderedThreadPoolExecutor
public UnorderedThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, java.util.concurrent.ThreadFactory threadFactory)Creates a new UnorderedThreadPoolExecutor instance- Parameters:
corePoolSize- The initial threads pool sizemaximumPoolSize- The maximum number of threads in the poolkeepAliveTime- The time to keep threads aliveunit- The time unit for the keepAliveTimethreadFactory- The Thread factory to use
-
UnorderedThreadPoolExecutor
public UnorderedThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, java.util.concurrent.ThreadFactory threadFactory, IoEventQueueHandler queueHandler)Creates a new UnorderedThreadPoolExecutor instance- Parameters:
corePoolSize- The initial threads pool sizemaximumPoolSize- The maximum number of threads in the poolkeepAliveTime- The time to keep threads aliveunit- The time unit for the keepAliveTimethreadFactory- The Thread factory to usequeueHandler- The Event queue handler to use
-
-
Method Detail
-
getQueueHandler
public IoEventQueueHandler getQueueHandler()
- Returns:
- The Queue handler in use
-
setRejectedExecutionHandler
public void setRejectedExecutionHandler(java.util.concurrent.RejectedExecutionHandler handler)
- Overrides:
setRejectedExecutionHandlerin classjava.util.concurrent.ThreadPoolExecutor
-
addWorker
private void addWorker()
-
addWorkerIfNecessary
private void addWorkerIfNecessary()
-
removeWorker
private void removeWorker()
-
getMaximumPoolSize
public int getMaximumPoolSize()
- Overrides:
getMaximumPoolSizein classjava.util.concurrent.ThreadPoolExecutor
-
setMaximumPoolSize
public void setMaximumPoolSize(int maximumPoolSize)
- Overrides:
setMaximumPoolSizein classjava.util.concurrent.ThreadPoolExecutor
-
awaitTermination
public boolean awaitTermination(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException- Specified by:
awaitTerminationin interfacejava.util.concurrent.ExecutorService- Overrides:
awaitTerminationin classjava.util.concurrent.ThreadPoolExecutor- Throws:
java.lang.InterruptedException
-
isShutdown
public boolean isShutdown()
- Specified by:
isShutdownin interfacejava.util.concurrent.ExecutorService- Overrides:
isShutdownin classjava.util.concurrent.ThreadPoolExecutor
-
isTerminated
public boolean isTerminated()
- Specified by:
isTerminatedin interfacejava.util.concurrent.ExecutorService- Overrides:
isTerminatedin classjava.util.concurrent.ThreadPoolExecutor
-
shutdown
public void shutdown()
- Specified by:
shutdownin interfacejava.util.concurrent.ExecutorService- Overrides:
shutdownin classjava.util.concurrent.ThreadPoolExecutor
-
shutdownNow
public java.util.List<java.lang.Runnable> shutdownNow()
- Specified by:
shutdownNowin interfacejava.util.concurrent.ExecutorService- Overrides:
shutdownNowin classjava.util.concurrent.ThreadPoolExecutor
-
execute
public void execute(java.lang.Runnable task)
- Specified by:
executein interfacejava.util.concurrent.Executor- Overrides:
executein classjava.util.concurrent.ThreadPoolExecutor
-
rejectTask
private void rejectTask(java.lang.Runnable task)
-
checkTaskType
private void checkTaskType(java.lang.Runnable task)
-
getActiveCount
public int getActiveCount()
- Overrides:
getActiveCountin classjava.util.concurrent.ThreadPoolExecutor
-
getCompletedTaskCount
public long getCompletedTaskCount()
- Overrides:
getCompletedTaskCountin classjava.util.concurrent.ThreadPoolExecutor
-
getLargestPoolSize
public int getLargestPoolSize()
- Overrides:
getLargestPoolSizein classjava.util.concurrent.ThreadPoolExecutor
-
getPoolSize
public int getPoolSize()
- Overrides:
getPoolSizein classjava.util.concurrent.ThreadPoolExecutor
-
getTaskCount
public long getTaskCount()
- Overrides:
getTaskCountin classjava.util.concurrent.ThreadPoolExecutor
-
isTerminating
public boolean isTerminating()
- Overrides:
isTerminatingin classjava.util.concurrent.ThreadPoolExecutor
-
prestartAllCoreThreads
public int prestartAllCoreThreads()
- Overrides:
prestartAllCoreThreadsin classjava.util.concurrent.ThreadPoolExecutor
-
prestartCoreThread
public boolean prestartCoreThread()
- Overrides:
prestartCoreThreadin classjava.util.concurrent.ThreadPoolExecutor
-
purge
public void purge()
- Overrides:
purgein classjava.util.concurrent.ThreadPoolExecutor
-
remove
public boolean remove(java.lang.Runnable task)
- Overrides:
removein classjava.util.concurrent.ThreadPoolExecutor
-
getCorePoolSize
public int getCorePoolSize()
- Overrides:
getCorePoolSizein classjava.util.concurrent.ThreadPoolExecutor
-
setCorePoolSize
public void setCorePoolSize(int corePoolSize)
- Overrides:
setCorePoolSizein classjava.util.concurrent.ThreadPoolExecutor
-
-