public class GraphThreadPoolExecutor<T>
extends java.util.concurrent.ThreadPoolExecutor
DynamicGraph
of tasks to be run and a IThreadWorkerFactory
to initialize/create
Runnable
wrappers around those tasksjava.util.concurrent.ThreadPoolExecutor.AbortPolicy, java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardPolicy
Modifier and Type | Field and Description |
---|---|
private java.util.Queue<java.lang.Runnable> |
m_activeRunnables |
private IThreadWorkerFactory<T> |
m_factory |
private DynamicGraph<T> |
m_graph |
Constructor and Description |
---|
GraphThreadPoolExecutor(java.lang.String name,
DynamicGraph<T> graph,
IThreadWorkerFactory<T> factory,
int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
java.util.concurrent.TimeUnit unit,
java.util.concurrent.BlockingQueue<java.lang.Runnable> workQueue) |
Modifier and Type | Method and Description |
---|---|
void |
afterExecute(java.lang.Runnable r,
java.lang.Throwable t) |
void |
run() |
private void |
runNodes(java.util.List<T> freeNodes)
Create one worker per node and execute them.
|
private void |
setStatus(IWorker<T> worker,
DynamicGraph.Status status) |
allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, beforeExecute, execute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getQueue, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, shutdown, shutdownNow, terminated, toString
private final DynamicGraph<T> m_graph
private final java.util.Queue<java.lang.Runnable> m_activeRunnables
private final IThreadWorkerFactory<T> m_factory
public GraphThreadPoolExecutor(java.lang.String name, DynamicGraph<T> graph, IThreadWorkerFactory<T> factory, int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, java.util.concurrent.BlockingQueue<java.lang.Runnable> workQueue)
public void run()
private void runNodes(java.util.List<T> freeNodes)
private void setStatus(IWorker<T> worker, DynamicGraph.Status status)
public void afterExecute(java.lang.Runnable r, java.lang.Throwable t)
afterExecute
in class java.util.concurrent.ThreadPoolExecutor