Class ThreadPools
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
static final int
static final String
Deprecated. -
Method Summary
Modifier and TypeMethodDescriptionstatic ExecutorService
Return anExecutorService
that uses the "delete worker" thread-pool.static ExecutorService
Return anExecutorService
that uses the "worker" thread-pool.static ExecutorService
newExitingWorkerPool
(String namePrefix, int poolSize) Creates a fixed-size thread pool that uses daemon threads and registers a shutdown hook to ensure the pool terminates when the JVM exits.static ExecutorService
newFixedThreadPool
(String namePrefix, int poolSize) Creates a fixed-size thread pool that uses daemon threads.static ScheduledExecutorService
newScheduledPool
(String namePrefix, int poolSize) Create a newScheduledExecutorService
with the given name and pool size.static ExecutorService
newWorkerPool
(String namePrefix) Deprecated.will be removed in 2.0.0.static ExecutorService
newWorkerPool
(String namePrefix, int poolSize) Deprecated.will be removed in 2.0.0.
-
Field Details
-
WORKER_THREAD_POOL_SIZE_PROP
Deprecated.UseWORKER_THREAD_POOL_SIZE
instead; will be removed in 2.0.0 -
WORKER_THREAD_POOL_SIZE
public static final int WORKER_THREAD_POOL_SIZE -
DELETE_WORKER_THREAD_POOL_SIZE
public static final int DELETE_WORKER_THREAD_POOL_SIZE
-
-
Method Details
-
getWorkerPool
Return anExecutorService
that uses the "worker" thread-pool.The size of the worker pool limits the number of tasks concurrently reading manifests in the base table implementation across all concurrent planning operations.
The size of this thread-pool is controlled by the Java system property
iceberg.worker.num-threads
.- Returns:
- an
ExecutorService
that uses the worker pool
-
getDeleteWorkerPool
Return anExecutorService
that uses the "delete worker" thread-pool.The size of this worker pool limits the number of tasks concurrently reading delete files within a single JVM. If there are multiple threads loading deletes, all of them will share this worker pool by default.
The size of this thread-pool is controlled by the Java system property
iceberg.worker.delete-num-threads
.- Returns:
- an
ExecutorService
that uses the delete worker pool
-
newWorkerPool
Deprecated.will be removed in 2.0.0. UsenewExitingWorkerPool(String, int)
for long-lived thread pools that require a shutdown hook, ornewFixedThreadPool(String, int)
for short-lived thread pools where you manage the lifecycle.Creates a fixed-size thread pool that uses daemon threads. The pool is wrapped withMoreExecutors.getExitingExecutorService(ThreadPoolExecutor)
, which registers a shutdown hook to ensure the pool terminates when the JVM exits. Important: Even if the pool is explicitly shut down usingExecutorService.shutdown()
, the shutdown hook is not removed. This can lead to accumulation of shutdown hooks if this method is used repeatedly for short-lived thread pools.For clarity and to avoid potential issues with shutdown hook accumulation, prefer using either
newExitingWorkerPool(String, int)
ornewFixedThreadPool(String, int)
, depending on the intended lifecycle of the thread pool. -
newWorkerPool
Deprecated.will be removed in 2.0.0. UsenewExitingWorkerPool(String, int)
for long-lived thread pools that require a shutdown hook, ornewFixedThreadPool(String, int)
for short-lived thread pools where you manage the lifecycle.Creates a fixed-size thread pool that uses daemon threads. The pool is wrapped withMoreExecutors.getExitingExecutorService(ThreadPoolExecutor)
, which registers a shutdown hook to ensure the pool terminates when the JVM exits. Important: Even if the pool is explicitly shut down usingExecutorService.shutdown()
, the shutdown hook is not removed. This can lead to accumulation of shutdown hooks if this method is used repeatedly for short-lived thread pools.For clarity and to avoid potential issues with shutdown hook accumulation, prefer using either
newExitingWorkerPool(String, int)
ornewFixedThreadPool(String, int)
, depending on the intended lifecycle of the thread pool. -
newExitingWorkerPool
Creates a fixed-size thread pool that uses daemon threads and registers a shutdown hook to ensure the pool terminates when the JVM exits. This is suitable for long-lived thread pools that should be automatically cleaned up on JVM shutdown. -
newFixedThreadPool
Creates a fixed-size thread pool that uses daemon threads. -
newScheduledPool
Create a newScheduledExecutorService
with the given name and pool size.Threads used by this service will be daemon threads.
- Parameters:
namePrefix
- a base name for threads in the executor service's thread poolpoolSize
- max number of threads to use- Returns:
- an executor service
-
WORKER_THREAD_POOL_SIZE
instead; will be removed in 2.0.0