public class CompositeExecutor extends Object implements Executor
Executor
that encapsulates two underlying executors. Used in cases
where two distinct operation types are being used where sharing threads could
adversely affect the operation of the system. For example, NIO event processing
threads being used for other blocking operations (such as assembling messages).
If a CallerRunsPolicy
rejected execution policy is used, the NIO event thread
might deadlock, and stop processing events.
In order to work in such an environment, the secondary executor must not
have a CallerRunsPolicy
rejected execution policy.
It is generally recommended to use a CallerBlocksPolicy
on both
executors.
Constructor and Description |
---|
CompositeExecutor(Executor primaryTaskExecutor,
Executor secondaryTaskExecutor) |
Modifier and Type | Method and Description |
---|---|
void |
execute(Runnable task)
Execute using the primary executor.
|
void |
execute2(Runnable task)
Execute using the secondary executor.
|