Package org.apache.mina.filter.executor
Class PriorityThreadPoolExecutor
- java.lang.Object
-
- java.util.concurrent.AbstractExecutorService
-
- java.util.concurrent.ThreadPoolExecutor
-
- org.apache.mina.filter.executor.PriorityThreadPoolExecutor
-
- All Implemented Interfaces:
Executor,ExecutorService
public class PriorityThreadPoolExecutor extends ThreadPoolExecutor
AThreadPoolExecutorthat maintains the order ofIoEvents within a session (similar toOrderedThreadPoolExecutor) and allows some sessions to be prioritized over other sessions.If you don't need to maintain the order of events per session, please use
UnorderedThreadPoolExecutor.If you don't need to prioritize sessions, please use
OrderedThreadPoolExecutor.- Author:
- Apache MINA Project, Guus der Kinderen, guus.der.kinderen@gmail.com
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classPriorityThreadPoolExecutor.SessionEntryA class used to preserve first-in-first-out order of sessions that have equal priority.-
Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor
ThreadPoolExecutor.AbortPolicy, ThreadPoolExecutor.CallerRunsPolicy, ThreadPoolExecutor.DiscardOldestPolicy, ThreadPoolExecutor.DiscardPolicy
-
-
Constructor Summary
Constructors Constructor Description PriorityThreadPoolExecutor()Creates a default ThreadPool, with default values : - minimum pool size is 0 - maximum pool size is 16 - keepAlive set to 30 seconds - A default ThreadFactory - All events are acceptedPriorityThreadPoolExecutor(int maximumPoolSize)Creates a default ThreadPool, with default values : minimum pool size is 0 keepAlive set to 30 seconds A default ThreadFactory - All events are acceptedPriorityThreadPoolExecutor(int corePoolSize, int maximumPoolSize)Creates a default ThreadPool, with default values : - keepAlive set to 30 seconds - A default ThreadFactory - All events are acceptedPriorityThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit)Creates a default ThreadPool, with default values : - A default ThreadFactory - All events are acceptedPriorityThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, ThreadFactory threadFactory)Creates a default ThreadPool, with default values : - A default ThreadFactoryPriorityThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, ThreadFactory threadFactory, IoEventQueueHandler eventQueueHandler, Comparator<IoSession> comparator)Creates a new instance of a PrioritisedOrderedThreadPoolExecutor.PriorityThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, IoEventQueueHandler eventQueueHandler)Creates a default ThreadPool, with default values : - A default ThreadFactoryPriorityThreadPoolExecutor(int maximumPoolSize, Comparator<IoSession> comparator)Creates a default ThreadPool, with default values : - minimum pool size is 0 - keepAlive set to 30 seconds - A default ThreadFactory - All events are acceptedPriorityThreadPoolExecutor(Comparator<IoSession> comparator)Creates a default ThreadPool, with default values : - minimum pool size is 0 - maximum pool size is 16 - keepAlive set to 30 seconds - A default ThreadFactory - All events are accepted
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanawaitTermination(long timeout, TimeUnit unit)voidexecute(Runnable task)intgetActiveCount()longgetCompletedTaskCount()intgetLargestPoolSize()intgetPoolSize()BlockingQueue<Runnable>getQueue()IoEventQueueHandlergetQueueHandler()longgetTaskCount()booleanisShutdown()booleanisTerminated()booleanisTerminating()intprestartAllCoreThreads()booleanprestartCoreThread()voidpurge()booleanremove(Runnable task)voidsetCorePoolSize(int corePoolSize)voidsetMaximumPoolSize(int maximumPoolSize)voidsetRejectedExecutionHandler(RejectedExecutionHandler handler)voidshutdown()List<Runnable>shutdownNow()-
Methods inherited from class java.util.concurrent.ThreadPoolExecutor
afterExecute, allowCoreThreadTimeOut, allowsCoreThreadTimeOut, beforeExecute, finalize, getCorePoolSize, getKeepAliveTime, getMaximumPoolSize, getRejectedExecutionHandler, getThreadFactory, setKeepAliveTime, setThreadFactory, terminated, toString
-
Methods inherited from class java.util.concurrent.AbstractExecutorService
invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor, submit, submit, submit
-
-
-
-
Constructor Detail
-
PriorityThreadPoolExecutor
public PriorityThreadPoolExecutor()
Creates a default ThreadPool, with default values : - minimum pool size is 0 - maximum pool size is 16 - keepAlive set to 30 seconds - A default ThreadFactory - All events are accepted
-
PriorityThreadPoolExecutor
public PriorityThreadPoolExecutor(Comparator<IoSession> comparator)
Creates a default ThreadPool, with default values : - minimum pool size is 0 - maximum pool size is 16 - keepAlive set to 30 seconds - A default ThreadFactory - All events are accepted- Parameters:
comparator- The comparator used to prioritize the queue
-
PriorityThreadPoolExecutor
public PriorityThreadPoolExecutor(int maximumPoolSize)
Creates a default ThreadPool, with default values :- minimum pool size is 0
- keepAlive set to 30 seconds
- A default ThreadFactory - All events are accepted
- Parameters:
maximumPoolSize- The maximum pool size
-
PriorityThreadPoolExecutor
public PriorityThreadPoolExecutor(int maximumPoolSize, Comparator<IoSession> comparator)Creates a default ThreadPool, with default values : - minimum pool size is 0 - keepAlive set to 30 seconds - A default ThreadFactory - All events are accepted- Parameters:
maximumPoolSize- The maximum pool size
-
PriorityThreadPoolExecutor
public PriorityThreadPoolExecutor(int corePoolSize, int maximumPoolSize)Creates a default ThreadPool, with default values : - keepAlive set to 30 seconds - A default ThreadFactory - All events are accepted- Parameters:
corePoolSize- The initial pool sizePoolSizemaximumPoolSize- The maximum pool size
-
PriorityThreadPoolExecutor
public PriorityThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit)Creates a default ThreadPool, with default values : - A default ThreadFactory - All events are accepted- Parameters:
corePoolSize- The initial pool sizePoolSizemaximumPoolSize- The maximum pool sizekeepAliveTime- Default duration for a threadunit- Time unit used for the keepAlive value
-
PriorityThreadPoolExecutor
public PriorityThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, IoEventQueueHandler eventQueueHandler)Creates a default ThreadPool, with default values : - A default ThreadFactory- Parameters:
corePoolSize- The initial pool sizePoolSizemaximumPoolSize- The maximum pool sizekeepAliveTime- Default duration for a threadunit- Time unit used for the keepAlive valueeventQueueHandler- The queue used to store events
-
PriorityThreadPoolExecutor
public PriorityThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, ThreadFactory threadFactory)Creates a default ThreadPool, with default values : - A default ThreadFactory- Parameters:
corePoolSize- The initial pool sizePoolSizemaximumPoolSize- The maximum pool sizekeepAliveTime- Default duration for a threadunit- Time unit used for the keepAlive valuethreadFactory- The factory used to create threads
-
PriorityThreadPoolExecutor
public PriorityThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, ThreadFactory threadFactory, IoEventQueueHandler eventQueueHandler, Comparator<IoSession> comparator)Creates a new instance of a PrioritisedOrderedThreadPoolExecutor.- Parameters:
corePoolSize- The initial pool sizePoolSizemaximumPoolSize- The maximum pool sizekeepAliveTime- Default duration for a threadunit- Time unit used for the keepAlive valuethreadFactory- The factory used to create threadseventQueueHandler- The queue used to store eventscomparator- The comparator used to prioritize the queue
-
-
Method Detail
-
getQueueHandler
public IoEventQueueHandler getQueueHandler()
- Returns:
- The associated queue handler.
-
setRejectedExecutionHandler
public void setRejectedExecutionHandler(RejectedExecutionHandler handler)
- Overrides:
setRejectedExecutionHandlerin classThreadPoolExecutor
-
setMaximumPoolSize
public void setMaximumPoolSize(int maximumPoolSize)
- Overrides:
setMaximumPoolSizein classThreadPoolExecutor
-
awaitTermination
public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException- Specified by:
awaitTerminationin interfaceExecutorService- Overrides:
awaitTerminationin classThreadPoolExecutor- Throws:
InterruptedException
-
isShutdown
public boolean isShutdown()
- Specified by:
isShutdownin interfaceExecutorService- Overrides:
isShutdownin classThreadPoolExecutor
-
isTerminated
public boolean isTerminated()
- Specified by:
isTerminatedin interfaceExecutorService- Overrides:
isTerminatedin classThreadPoolExecutor
-
shutdown
public void shutdown()
- Specified by:
shutdownin interfaceExecutorService- Overrides:
shutdownin classThreadPoolExecutor
-
shutdownNow
public List<Runnable> shutdownNow()
- Specified by:
shutdownNowin interfaceExecutorService- Overrides:
shutdownNowin classThreadPoolExecutor
-
execute
public void execute(Runnable task)
- Specified by:
executein interfaceExecutor- Overrides:
executein classThreadPoolExecutor
-
getActiveCount
public int getActiveCount()
- Overrides:
getActiveCountin classThreadPoolExecutor
-
getCompletedTaskCount
public long getCompletedTaskCount()
- Overrides:
getCompletedTaskCountin classThreadPoolExecutor
-
getLargestPoolSize
public int getLargestPoolSize()
- Overrides:
getLargestPoolSizein classThreadPoolExecutor
-
getPoolSize
public int getPoolSize()
- Overrides:
getPoolSizein classThreadPoolExecutor
-
getTaskCount
public long getTaskCount()
- Overrides:
getTaskCountin classThreadPoolExecutor
-
isTerminating
public boolean isTerminating()
- Overrides:
isTerminatingin classThreadPoolExecutor
-
prestartAllCoreThreads
public int prestartAllCoreThreads()
- Overrides:
prestartAllCoreThreadsin classThreadPoolExecutor
-
prestartCoreThread
public boolean prestartCoreThread()
- Overrides:
prestartCoreThreadin classThreadPoolExecutor
-
getQueue
public BlockingQueue<Runnable> getQueue()
- Overrides:
getQueuein classThreadPoolExecutor
-
purge
public void purge()
- Overrides:
purgein classThreadPoolExecutor
-
remove
public boolean remove(Runnable task)
- Overrides:
removein classThreadPoolExecutor
-
setCorePoolSize
public void setCorePoolSize(int corePoolSize)
- Overrides:
setCorePoolSizein classThreadPoolExecutor
-
-