Package org.testng.internal.thread.graph
Class GraphThreadPoolExecutor<T>
- java.lang.Object
-
- java.util.concurrent.AbstractExecutorService
-
- java.util.concurrent.ThreadPoolExecutor
-
- org.testng.internal.thread.graph.GraphThreadPoolExecutor<T>
-
- All Implemented Interfaces:
java.util.concurrent.Executor
,java.util.concurrent.ExecutorService
public class GraphThreadPoolExecutor<T> extends java.util.concurrent.ThreadPoolExecutor
An Executor that launches tasks per batches. It takes aDynamicGraph
of tasks to be run and aIThreadWorkerFactory
to initialize/createRunnable
wrappers around those tasks
-
-
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
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Queue<java.lang.Runnable>
m_activeRunnables
private IThreadWorkerFactory<T>
m_factory
private DynamicGraph<T>
m_graph
-
Constructor Summary
Constructors Constructor 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)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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)
-
Methods inherited from class java.util.concurrent.ThreadPoolExecutor
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
-
-
-
-
Field Detail
-
m_graph
private final DynamicGraph<T> m_graph
-
m_activeRunnables
private final java.util.Queue<java.lang.Runnable> m_activeRunnables
-
m_factory
private final IThreadWorkerFactory<T> m_factory
-
-
Constructor Detail
-
GraphThreadPoolExecutor
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)
-
-
Method Detail
-
run
public void run()
-
runNodes
private void runNodes(java.util.List<T> freeNodes)
Create one worker per node and execute them.
-
setStatus
private void setStatus(IWorker<T> worker, DynamicGraph.Status status)
-
afterExecute
public void afterExecute(java.lang.Runnable r, java.lang.Throwable t)
- Overrides:
afterExecute
in classjava.util.concurrent.ThreadPoolExecutor
-
-