org.simpleframework.util.thread
Class PoolExecutor

java.lang.Object
  extended by org.simpleframework.util.thread.PoolExecutor
All Implemented Interfaces:
java.util.concurrent.Executor

public class PoolExecutor
extends java.lang.Object
implements java.util.concurrent.Executor

The PoolExecutor object is used to execute tasks in a thread pool. This creates a thread pool with an unbounded list of outstanding tasks, which ensures that any system requesting a task to be executed will not block when handing it over.

Author:
Niall Gallagher

Constructor Summary
PoolExecutor(java.lang.Class<? extends java.lang.Runnable> type)
          Constructor for the PoolExecutor object.
PoolExecutor(java.lang.Class<? extends java.lang.Runnable> type, int size)
          Constructor for the PoolExecutor object.
PoolExecutor(java.lang.Class<? extends java.lang.Runnable> type, int rest, int active)
          Constructor for the PoolExecutor object.
 
Method Summary
 void execute(java.lang.Runnable task)
          The execute method is used to queue the task for execution.
 void stop()
          This is used to stop the executor by interrupting all running tasks and shutting down the threads within the pool.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PoolExecutor

public PoolExecutor(java.lang.Class<? extends java.lang.Runnable> type)
Constructor for the PoolExecutor object. This is used to create a pool of threads that can be used to execute arbitrary Runnable tasks. If the threads are busy this will simply enqueue the tasks and return.

Parameters:
type - this is the type of runnable that this accepts

PoolExecutor

public PoolExecutor(java.lang.Class<? extends java.lang.Runnable> type,
                    int size)
Constructor for the PoolExecutor object. This is used to create a pool of threads that can be used to execute arbitrary Runnable tasks. If the threads are busy this will simply enqueue the tasks and return.

Parameters:
type - this is the type of runnable that this accepts
size - this is the number of threads to use in the pool

PoolExecutor

public PoolExecutor(java.lang.Class<? extends java.lang.Runnable> type,
                    int rest,
                    int active)
Constructor for the PoolExecutor object. This is used to create a pool of threads that can be used to execute arbitrary Runnable tasks. If the threads are busy this will simply enqueue the tasks and return.

Parameters:
type - this is the type of runnable that this accepts
rest - this is the number of threads to use in the pool
active - this is the maximum size the pool can grow to
Method Detail

execute

public void execute(java.lang.Runnable task)
The execute method is used to queue the task for execution. If all threads are busy the provided task is queued and waits until all current and outstanding tasks are finished.

Specified by:
execute in interface java.util.concurrent.Executor
Parameters:
task - this is the task to be queued for execution

stop

public void stop()
This is used to stop the executor by interrupting all running tasks and shutting down the threads within the pool. This will return once it has been stopped, and no further tasks will be accepted by this pool for execution.