Class ThreadPoolImpl
java.lang.Object
com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl
- All Implemented Interfaces:
ThreadPool,Closeable,AutoCloseable
-
Constructor Summary
ConstructorsConstructorDescriptionThreadPoolImpl(int minSize, int maxSize, long timeout, String threadpoolName) This constructor is used to create bounded threadpoolThreadPoolImpl(String threadpoolName) This constructor is used to create an unbounded threadpool in the ThreadGroup of the current threadThreadPoolImpl(ThreadGroup tg, String threadpoolName) This constructor is used to create an unbounded threadpool -
Method Summary
Modifier and TypeMethodDescriptionlongThis method returns the average elapsed time taken to complete a Work item.voidclose()intThis method will return the current number of threads in the threadpool.longThis method returns the number of Work items processed by the threadpoolThis method will return any instance of the WorkQueue.getName()This method will return the name of the threadpool.getWorkQueue(int queueId) This method will return an instance of the of the WorkQueue given a queueId.longThis method will return the time in milliseconds when idle threads in the threadpool are removed.intThis method will return the maximum number of threads in the threadpool at any point in time, for the life of the threadpoolintThis method will return the minimum number of threads maintained by the threadpool.intThis method will return the number of available threads in the threadpool which are waiting for work.intThis method will return the number of busy threads in the threadpool This method returns a value which is not synchronized.intThis method will return the number of WorkQueues serviced by the threadpool.
-
Constructor Details
-
ThreadPoolImpl
This constructor is used to create an unbounded threadpool -
ThreadPoolImpl
This constructor is used to create an unbounded threadpool in the ThreadGroup of the current thread -
ThreadPoolImpl
This constructor is used to create bounded threadpool
-
-
Method Details
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
getAnyWorkQueue
Description copied from interface:ThreadPoolThis method will return any instance of the WorkQueue. If the ThreadPool instance only services one WorkQueue then that WorkQueue instance will be returned. If there are more than one WorkQueues serviced by this ThreadPool, then this method would return a WorkQueue based on the implementation of the class that implements this interface. For PE 8.0 we would return a WorkQueue in a roundrobin fashion everytime this method is called. In the future we could allow pluggability of Policy objects for this.- Specified by:
getAnyWorkQueuein interfaceThreadPool
-
getWorkQueue
Description copied from interface:ThreadPoolThis method will return an instance of the of the WorkQueue given a queueId. This will be useful in situations where there are more than one WorkQueues managed by the ThreadPool and the user of the ThreadPool wants to always use the same WorkQueue for doing the Work. If the number of WorkQueues in the ThreadPool are 10, then queueIds will go from 0-9- Specified by:
getWorkQueuein interfaceThreadPool- Throws:
NoSuchWorkQueueException- thrown when queueId passed is invalid
-
minimumNumberOfThreads
public int minimumNumberOfThreads()Description copied from interface:ThreadPoolThis method will return the minimum number of threads maintained by the threadpool.- Specified by:
minimumNumberOfThreadsin interfaceThreadPool
-
maximumNumberOfThreads
public int maximumNumberOfThreads()Description copied from interface:ThreadPoolThis method will return the maximum number of threads in the threadpool at any point in time, for the life of the threadpool- Specified by:
maximumNumberOfThreadsin interfaceThreadPool
-
idleTimeoutForThreads
public long idleTimeoutForThreads()Description copied from interface:ThreadPoolThis method will return the time in milliseconds when idle threads in the threadpool are removed.- Specified by:
idleTimeoutForThreadsin interfaceThreadPool
-
currentNumberOfThreads
public int currentNumberOfThreads()Description copied from interface:ThreadPoolThis method will return the current number of threads in the threadpool. This method returns a value which is not synchronized.- Specified by:
currentNumberOfThreadsin interfaceThreadPool
-
numberOfAvailableThreads
public int numberOfAvailableThreads()Description copied from interface:ThreadPoolThis method will return the number of available threads in the threadpool which are waiting for work. This method returns a value which is not synchronized.- Specified by:
numberOfAvailableThreadsin interfaceThreadPool
-
numberOfBusyThreads
public int numberOfBusyThreads()Description copied from interface:ThreadPoolThis method will return the number of busy threads in the threadpool This method returns a value which is not synchronized.- Specified by:
numberOfBusyThreadsin interfaceThreadPool
-
averageWorkCompletionTime
public long averageWorkCompletionTime()Description copied from interface:ThreadPoolThis method returns the average elapsed time taken to complete a Work item.- Specified by:
averageWorkCompletionTimein interfaceThreadPool
-
currentProcessedCount
public long currentProcessedCount()Description copied from interface:ThreadPoolThis method returns the number of Work items processed by the threadpool- Specified by:
currentProcessedCountin interfaceThreadPool
-
getName
Description copied from interface:ThreadPoolThis method will return the name of the threadpool.- Specified by:
getNamein interfaceThreadPool
-
numberOfWorkQueues
public int numberOfWorkQueues()This method will return the number of WorkQueues serviced by the threadpool.- Specified by:
numberOfWorkQueuesin interfaceThreadPool
-