Class 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 a DynamicGraph of tasks to be run and a IThreadWorkerFactory to initialize/create Runnable 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
    • 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
      • Methods inherited from class java.util.concurrent.AbstractExecutorService

        invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor, submit, submit, submit
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • m_activeRunnables

        private final java.util.Queue<java.lang.Runnable> m_activeRunnables
    • 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.
      • afterExecute

        public void afterExecute​(java.lang.Runnable r,
                                 java.lang.Throwable t)
        Overrides:
        afterExecute in class java.util.concurrent.ThreadPoolExecutor