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.ThreadPoolExecutorAn Executor that launches tasks per batches. It takes aDynamicGraphof tasks to be run and aIThreadWorkerFactoryto initialize/createRunnablewrappers 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_activeRunnablesprivate IThreadWorkerFactory<T>m_factoryprivate 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 voidafterExecute(java.lang.Runnable r, java.lang.Throwable t)voidrun()private voidrunNodes(java.util.List<T> freeNodes)Create one worker per node and execute them.private voidsetStatus(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:
afterExecutein classjava.util.concurrent.ThreadPoolExecutor
-
-