public final class SimpleDynamicNIOStrategy extends Object implements IOStrategy
SelectionKey
s, which were selected last time by
Selector
.
SimpleDynamicIOStrategy is able to use 2 strategies underneath:
SameThreadIOStrategy
, WorkerThreadIOStrategy
.
And is able to switch between them basing on corresponding threshold
(threshold represents the number of selected
SelectionKey
s).
So the strategy is getting applied following way:
SameThreadIOStrategy
--(worker-thread threshold)--> WorkerThreadIOStrategy
.Modifier and Type | Method and Description |
---|---|
ThreadPoolConfig |
createDefaultWorkerPoolConfig(Transport transport) |
boolean |
executeIoEvent(Connection connection,
IOEvent ioEvent)
The
SelectorRunner will invoke this
method to allow the strategy implementation to decide how the
IOEvent will be handled. |
boolean |
executeIoEvent(Connection connection,
IOEvent ioEvent,
boolean isIoEventEnabled)
The
SelectorRunner will invoke this
method to allow the strategy implementation to decide how the
IOEvent will be handled. |
static SimpleDynamicNIOStrategy |
getInstance() |
public static SimpleDynamicNIOStrategy getInstance()
public boolean executeIoEvent(Connection connection, IOEvent ioEvent) throws IOException
IOStrategy
SelectorRunner
will invoke this
method to allow the strategy implementation to decide how the
IOEvent
will be handled.executeIoEvent
in interface IOStrategy
connection
- the Connection
upon which the provided
IOEvent
occurred.ioEvent
- the IOEvent
that triggered execution of this
strategy
IOException
- if an error occurs processing the IOEvent
.public boolean executeIoEvent(Connection connection, IOEvent ioEvent, boolean isIoEventEnabled) throws IOException
IOStrategy
SelectorRunner
will invoke this
method to allow the strategy implementation to decide how the
IOEvent
will be handled.executeIoEvent
in interface IOStrategy
connection
- the Connection
upon which the provided
IOEvent
occurred.ioEvent
- the IOEvent
that triggered execution of this
strategy
isIoEventEnabled
- true if IOEvent is still enabled on the
Connection
, or false if IOEvent was preliminary disabled
or IOEvent is being simulated.IOException
- if an error occurs processing the IOEvent
.public ThreadPoolConfig createDefaultWorkerPoolConfig(Transport transport)
createDefaultWorkerPoolConfig
in interface WorkerThreadPoolConfigProducer
Copyright © 2014 Oracle Corporation. All rights reserved.