Package org.apache.sysds.runtime.util

## Class CommonThreadPool

- java.lang.Object
- - org.apache.sysds.runtime.util.CommonThreadPool

All Implemented Interfaces:
  `Executor`, `ExecutorService`

    public class CommonThreadPool
    extends Object
    implements ExecutorService

This common thread pool provides an abstraction to obtain a shared thread pool, specifically the ForkJoinPool.commonPool, for all requests of the maximum degree of parallelism. If pools of different size are requested, we create new pool instances of FixedThreadPool.

### Field Summary

Fields
`static ExecutorService` `triggerRemoteOPsPool`

### Constructor Summary

Constructors
`CommonThreadPool​(ExecutorService pool)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`boolean` `awaitTermination​(long timeout, TimeUnit unit)`
`void` `execute​(Runnable command)`
`static ExecutorService` `get​(int k)`
`<T> List<Future<T>>` `invokeAll​(Collection<? extends Callable<T>> tasks)`
`<T> List<Future<T>>` `invokeAll​(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)`
`static <T> void` `invokeAndShutdown​(ExecutorService pool, Collection<? extends Callable<T>> tasks)`
`<T> T` `invokeAny​(Collection<? extends Callable<T>> tasks)`
`<T> T` `invokeAny​(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)`
`boolean` `isShutdown()`
`boolean` `isTerminated()`
`void` `shutdown()`
`static void` `shutdownAsyncRDDPool()`
`List<Runnable>` `shutdownNow()`
`static void` `shutdownShared()`
`Future<?>` `submit​(Runnable task)`
`<T> Future<T>` `submit​(Runnable task, T result)`
`<T> Future<T>` `submit​(Callable<T> task)`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### triggerRemoteOPsPool

    public static ExecutorService triggerRemoteOPsPool

### Constructor Detail

#### CommonThreadPool

    public CommonThreadPool​(ExecutorService pool)

### Method Detail

#### get

    public static ExecutorService get​(int k)

#### invokeAndShutdown

    public static <T> void invokeAndShutdown​(ExecutorService pool,
                                             Collection<? extends Callable<T>> tasks)

#### shutdownShared

    public static void shutdownShared()

#### shutdownAsyncRDDPool

    public static void shutdownAsyncRDDPool()

#### shutdown

    public void shutdown()

Specified by:
  `shutdown` in interface `ExecutorService`

#### shutdownNow

    public List<Runnable> shutdownNow()

Specified by:
  `shutdownNow` in interface `ExecutorService`

#### invokeAll

    public <T> List<Future<T>> invokeAll​(Collection<? extends Callable<T>> tasks)
                                  throws InterruptedException

Specified by:
  `invokeAll` in interface `ExecutorService`
Throws:
  `InterruptedException`

#### invokeAll

    public <T> List<Future<T>> invokeAll​(Collection<? extends Callable<T>> tasks,
                                         long timeout,
                                         TimeUnit unit)
                                  throws InterruptedException

Specified by:
  `invokeAll` in interface `ExecutorService`
Throws:
  `InterruptedException`

#### execute

    public void execute​(Runnable command)

Specified by:
  `execute` in interface `Executor`

#### submit

    public <T> Future<T> submit​(Callable<T> task)

Specified by:
  `submit` in interface `ExecutorService`

#### submit

    public <T> Future<T> submit​(Runnable task,
                                T result)

Specified by:
  `submit` in interface `ExecutorService`

#### submit

    public Future<?> submit​(Runnable task)

Specified by:
  `submit` in interface `ExecutorService`

#### isShutdown

    public boolean isShutdown()

Specified by:
  `isShutdown` in interface `ExecutorService`

#### isTerminated

    public boolean isTerminated()

Specified by:
  `isTerminated` in interface `ExecutorService`

#### awaitTermination

    public boolean awaitTermination​(long timeout,
                                    TimeUnit unit)
                             throws InterruptedException

Specified by:
  `awaitTermination` in interface `ExecutorService`
Throws:
  `InterruptedException`

#### invokeAny

    public <T> T invokeAny​(Collection<? extends Callable<T>> tasks)
                    throws InterruptedException,
                           ExecutionException

Specified by:
  `invokeAny` in interface `ExecutorService`
Throws:
  `InterruptedException`
  `ExecutionException`

#### invokeAny

    public <T> T invokeAny​(Collection<? extends Callable<T>> tasks,
                           long timeout,
                           TimeUnit unit)
                    throws InterruptedException,
                           ExecutionException,
                           TimeoutException

Specified by:
  `invokeAny` in interface `ExecutorService`
Throws:
  `InterruptedException`
  `ExecutionException`
  `TimeoutException`