public class ExecutorFactoryCassandraSEPImpl extends Object implements ExecutorFactory
ExecutorFactory
returns ExecutorService
instances that are
implemented with Cassandra's high performance, low-context-switching
SharedExecutorPool
.Modifier and Type | Field and Description |
---|---|
static org.apache.cassandra.concurrent.JMXEnabledSharedExecutorPool |
SHARED
Create a shared executor pool for all of the threads used in this class
TODO: Make this into a map of separate pools per daemon?
|
Constructor and Description |
---|
ExecutorFactoryCassandraSEPImpl() |
Modifier and Type | Method and Description |
---|---|
ExecutorService |
newExecutor(int threads,
int queueSize,
String daemonName,
String executorName)
Construct a new
ExecutorService with a specified queue size for
the backlog of tasks. |
ExecutorService |
newExecutor(int threads,
String daemonName,
String executorName)
Construct a new
ExecutorService with an unbounded queue size
({@link Integer#MAX_VALUE). |
ExecutorService |
newExecutor(String daemonName,
String executorName)
Construct a new
ExecutorService with an unbounded queue size and
a thread pool size equal to the value of Runtime.availableProcessors()
so that one thread per core is started. |
public static final org.apache.cassandra.concurrent.JMXEnabledSharedExecutorPool SHARED
public ExecutorService newExecutor(String daemonName, String executorName)
ExecutorFactory
ExecutorService
with an unbounded queue size and
a thread pool size equal to the value of Runtime.availableProcessors()
so that one thread per core is started.newExecutor
in interface ExecutorFactory
public ExecutorService newExecutor(int threads, String daemonName, String executorName)
ExecutorFactory
ExecutorService
with an unbounded queue size
(Integer#MAX_VALUE).
For CPU-intensive tasks, it is a good idea to use the value of
{@link Runtime#availableProcessors()} (or a reasonable multiple of it
based on the tasks) for the threads
parameter to ensure
that the CPU is fully utilized.newExecutor
in interface ExecutorFactory
public ExecutorService newExecutor(int threads, int queueSize, String daemonName, String executorName)
ExecutorFactory
ExecutorService
with a specified queue size for
the backlog of tasks. When the queue is full, the pool may block,
discard the incoming task, or throw an exception. This behavior is
dependent on the implementation of the ExecutorService
.
For CPU-intensive tasks, it is a good idea to use the value of
Runtime.availableProcessors()
(or a reasonable multiple of it
based on the tasks) for the threads
parameter to ensure
that the CPU is fully utilized.newExecutor
in interface ExecutorFactory
Copyright © 2017. All rights reserved.