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:
java.util.concurrent.Executor
,java.util.concurrent.ExecutorService
public class PriorityThreadPoolExecutor extends java.util.concurrent.ThreadPoolExecutor
AThreadPoolExecutor
that maintains the order ofIoEvent
s 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/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
-
-
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, java.util.concurrent.TimeUnit unit)
Creates a default ThreadPool, with default values : - A default ThreadFactory - All events are acceptedPriorityThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, java.util.concurrent.ThreadFactory threadFactory)
Creates a default ThreadPool, with default values : - A default ThreadFactoryPriorityThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, java.util.concurrent.ThreadFactory threadFactory, IoEventQueueHandler eventQueueHandler, java.util.Comparator<IoSession> comparator)
Creates a new instance of a PrioritisedOrderedThreadPoolExecutor.PriorityThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, IoEventQueueHandler eventQueueHandler)
Creates a default ThreadPool, with default values : - A default ThreadFactoryPriorityThreadPoolExecutor(int maximumPoolSize, java.util.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(java.util.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 boolean
awaitTermination(long timeout, java.util.concurrent.TimeUnit unit)
void
execute(java.lang.Runnable task)
int
getActiveCount()
long
getCompletedTaskCount()
int
getLargestPoolSize()
int
getPoolSize()
java.util.concurrent.BlockingQueue<java.lang.Runnable>
getQueue()
IoEventQueueHandler
getQueueHandler()
long
getTaskCount()
boolean
isShutdown()
boolean
isTerminated()
boolean
isTerminating()
int
prestartAllCoreThreads()
boolean
prestartCoreThread()
void
purge()
boolean
remove(java.lang.Runnable task)
void
setCorePoolSize(int corePoolSize)
void
setMaximumPoolSize(int maximumPoolSize)
void
setRejectedExecutionHandler(java.util.concurrent.RejectedExecutionHandler handler)
void
shutdown()
java.util.List<java.lang.Runnable>
shutdownNow()
-
Methods inherited from class java.util.concurrent.ThreadPoolExecutor
afterExecute, allowCoreThreadTimeOut, allowsCoreThreadTimeOut, beforeExecute, finalize, getCorePoolSize, getKeepAliveTime, getMaximumPoolSize, getRejectedExecutionHandler, getThreadFactory, setKeepAliveTime, setThreadFactory, terminated, toString
-
-
-
-
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(java.util.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
-
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, java.util.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, java.util.concurrent.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, java.util.concurrent.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, java.util.concurrent.TimeUnit unit, java.util.concurrent.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, java.util.concurrent.TimeUnit unit, java.util.concurrent.ThreadFactory threadFactory, IoEventQueueHandler eventQueueHandler, java.util.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 events
-
-
Method Detail
-
getQueueHandler
public IoEventQueueHandler getQueueHandler()
- Returns:
- The associated queue handler.
-
setRejectedExecutionHandler
public void setRejectedExecutionHandler(java.util.concurrent.RejectedExecutionHandler handler)
- Overrides:
setRejectedExecutionHandler
in classjava.util.concurrent.ThreadPoolExecutor
-
setMaximumPoolSize
public void setMaximumPoolSize(int maximumPoolSize)
- Overrides:
setMaximumPoolSize
in classjava.util.concurrent.ThreadPoolExecutor
-
awaitTermination
public boolean awaitTermination(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
- Specified by:
awaitTermination
in interfacejava.util.concurrent.ExecutorService
- Overrides:
awaitTermination
in classjava.util.concurrent.ThreadPoolExecutor
- Throws:
java.lang.InterruptedException
-
isShutdown
public boolean isShutdown()
- Specified by:
isShutdown
in interfacejava.util.concurrent.ExecutorService
- Overrides:
isShutdown
in classjava.util.concurrent.ThreadPoolExecutor
-
isTerminated
public boolean isTerminated()
- Specified by:
isTerminated
in interfacejava.util.concurrent.ExecutorService
- Overrides:
isTerminated
in classjava.util.concurrent.ThreadPoolExecutor
-
shutdown
public void shutdown()
- Specified by:
shutdown
in interfacejava.util.concurrent.ExecutorService
- Overrides:
shutdown
in classjava.util.concurrent.ThreadPoolExecutor
-
shutdownNow
public java.util.List<java.lang.Runnable> shutdownNow()
- Specified by:
shutdownNow
in interfacejava.util.concurrent.ExecutorService
- Overrides:
shutdownNow
in classjava.util.concurrent.ThreadPoolExecutor
-
execute
public void execute(java.lang.Runnable task)
- Specified by:
execute
in interfacejava.util.concurrent.Executor
- Overrides:
execute
in classjava.util.concurrent.ThreadPoolExecutor
-
getActiveCount
public int getActiveCount()
- Overrides:
getActiveCount
in classjava.util.concurrent.ThreadPoolExecutor
-
getCompletedTaskCount
public long getCompletedTaskCount()
- Overrides:
getCompletedTaskCount
in classjava.util.concurrent.ThreadPoolExecutor
-
getLargestPoolSize
public int getLargestPoolSize()
- Overrides:
getLargestPoolSize
in classjava.util.concurrent.ThreadPoolExecutor
-
getPoolSize
public int getPoolSize()
- Overrides:
getPoolSize
in classjava.util.concurrent.ThreadPoolExecutor
-
getTaskCount
public long getTaskCount()
- Overrides:
getTaskCount
in classjava.util.concurrent.ThreadPoolExecutor
-
isTerminating
public boolean isTerminating()
- Overrides:
isTerminating
in classjava.util.concurrent.ThreadPoolExecutor
-
prestartAllCoreThreads
public int prestartAllCoreThreads()
- Overrides:
prestartAllCoreThreads
in classjava.util.concurrent.ThreadPoolExecutor
-
prestartCoreThread
public boolean prestartCoreThread()
- Overrides:
prestartCoreThread
in classjava.util.concurrent.ThreadPoolExecutor
-
getQueue
public java.util.concurrent.BlockingQueue<java.lang.Runnable> getQueue()
- Overrides:
getQueue
in classjava.util.concurrent.ThreadPoolExecutor
-
purge
public void purge()
- Overrides:
purge
in classjava.util.concurrent.ThreadPoolExecutor
-
remove
public boolean remove(java.lang.Runnable task)
- Overrides:
remove
in classjava.util.concurrent.ThreadPoolExecutor
-
setCorePoolSize
public void setCorePoolSize(int corePoolSize)
- Overrides:
setCorePoolSize
in classjava.util.concurrent.ThreadPoolExecutor
-
-