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.
|