Interface ThreadPoolProvider


public interface ThreadPoolProvider
  • Method Details

    • threadProvider

      ThreadProvider threadProvider()
      Returns:
      The underlying thread provider.
    • newFixedThreadPool

      ThreadPoolExecutor newFixedThreadPool(int threads, String threadNamePrefix)
      Creates a new fixed size ThreadPoolExecutor.

      It's using a blocking queue of maximum 1000 elements and the rejection policy is set to block until the queue can accept the task. These settings are required to cap the queue, to make sure the timeouts are reasonable for most jobs.

      Parameters:
      threads - the number of threads
      threadNamePrefix - a label to identify the threads; useful for profiling.
      Returns:
      the new ExecutorService
    • newFixedThreadPool

      ThreadPoolExecutor newFixedThreadPool(int threads, String threadNamePrefix, int queueSize)
      Creates a new fixed size ThreadPoolExecutor.

      It's using a blocking queue of maximum queueSize elements and the rejection policy is set to block until the queue can accept the task. These settings are required to cap the queue, to make sure the timeouts are reasonable for most jobs.

      Parameters:
      threads - the number of threads
      threadNamePrefix - a label to identify the threads; useful for profiling.
      queueSize - the size of the queue to store Runnables when all threads are busy
      Returns:
      the new ExecutorService
    • newScheduledExecutor

      ScheduledExecutorService newScheduledExecutor(int threads, String threadNamePrefix)
      Creates a new fixed size ScheduledExecutorService.

      The queue size is not capped, so users should take care of checking they submit a reasonable amount of tasks.

      Parameters:
      threads - the number of threads
      threadNamePrefix - a label to identify the threads; useful for profiling.
      Returns:
      the new ExecutorService
    • isScheduledExecutorBlocking

      boolean isScheduledExecutorBlocking()
      Returns:
      true if the executors returned by newScheduledExecutor(int, java.lang.String) may block when submitting a task; false if they never block (e.g. they throw an RejectedExecutionException).