Package edu.jas.util
Class DistThreadPool
- java.lang.Object
-
- edu.jas.util.DistThreadPool
-
public class DistThreadPool extends java.lang.Object
Distributed thread pool. Using stack / list work-pile and Executable Channels and Servers.- Author:
- Heinz Kredel
-
-
Field Summary
Fields Modifier and Type Field Description protected intidleworkersNumber of idle workers.protected java.util.LinkedList<java.lang.Runnable>jobstackWork queue / stack.protected StrategyEnumerationstrategyprotected intthreadsNumber of threads to use.protected edu.jas.util.DistPoolThread[]workersArray of workers.
-
Constructor Summary
Constructors Constructor Description DistThreadPool()Constructs a new DistThreadPool with strategy StrategyEnumeration.FIFO and size DEFAULT_SIZE.DistThreadPool(int size)Constructs a new DistThreadPool with strategy StrategyEnumeration.FIFO.DistThreadPool(int size, java.lang.String mfile)Constructs a new DistThreadPool with strategy StrategyEnumeration.FIFO.DistThreadPool(StrategyEnumeration strategy)Constructs a new DistThreadPool with size DEFAULT_SIZE.DistThreadPool(StrategyEnumeration strategy, int size, java.lang.String mfile)Constructs a new DistThreadPool.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddJob(java.lang.Runnable job)adds a job to the workpile.ExecutableChannelsgetEC()the used executable channel.protected java.lang.RunnablegetJob()get a job for processing.intgetNumber()number of worker threads.StrategyEnumerationgetStrategy()get used strategy.booleanhasJobs()check if there are jobs for processing.booleanhasJobs(int n)check if there are more than n jobs for processing.voidinit()thread initialization and start.voidterminate()Terminates the threads.voidterminate(boolean shutDown)Terminates the threads.java.lang.StringtoString()String representation.
-
-
-
Field Detail
-
threads
protected final int threads
Number of threads to use.
-
workers
protected edu.jas.util.DistPoolThread[] workers
Array of workers.
-
idleworkers
protected int idleworkers
Number of idle workers.
-
jobstack
protected java.util.LinkedList<java.lang.Runnable> jobstack
Work queue / stack.
-
strategy
protected StrategyEnumeration strategy
-
-
Constructor Detail
-
DistThreadPool
public DistThreadPool()
Constructs a new DistThreadPool with strategy StrategyEnumeration.FIFO and size DEFAULT_SIZE.
-
DistThreadPool
public DistThreadPool(StrategyEnumeration strategy)
Constructs a new DistThreadPool with size DEFAULT_SIZE.- Parameters:
strategy- for job processing.
-
DistThreadPool
public DistThreadPool(int size)
Constructs a new DistThreadPool with strategy StrategyEnumeration.FIFO.- Parameters:
size- of the pool.
-
DistThreadPool
public DistThreadPool(int size, java.lang.String mfile)
Constructs a new DistThreadPool with strategy StrategyEnumeration.FIFO.- Parameters:
size- of the pool.mfile- machine file.
-
DistThreadPool
public DistThreadPool(StrategyEnumeration strategy, int size, java.lang.String mfile)
Constructs a new DistThreadPool.- Parameters:
strategy- for job processing.size- of the pool.mfile- machine file.
-
-
Method Detail
-
toString
public java.lang.String toString()
String representation.- Overrides:
toStringin classjava.lang.Object
-
init
public void init()
thread initialization and start.
-
getNumber
public int getNumber()
number of worker threads.
-
getStrategy
public StrategyEnumeration getStrategy()
get used strategy.
-
getEC
public ExecutableChannels getEC()
the used executable channel.
-
terminate
public void terminate(boolean shutDown)
Terminates the threads.- Parameters:
shutDown- true, if shut-down of the remote executable servers is requested, false, if remote executable servers stay alive.
-
terminate
public void terminate()
Terminates the threads.
-
addJob
public void addJob(java.lang.Runnable job)
adds a job to the workpile.- Parameters:
job-
-
getJob
protected java.lang.Runnable getJob() throws java.lang.InterruptedException
get a job for processing.- Throws:
java.lang.InterruptedException
-
hasJobs
public boolean hasJobs()
check if there are jobs for processing.
-
hasJobs
public boolean hasJobs(int n)
check if there are more than n jobs for processing.- Parameters:
n- Integer- Returns:
- true, if there are possibly more than n jobs.
-
-