Package org.apache.hc.core5.reactor
Class DefaultConnectingIOReactor
java.lang.Object
org.apache.hc.core5.reactor.AbstractIOReactorBase
org.apache.hc.core5.reactor.DefaultConnectingIOReactor
- All Implemented Interfaces:
Closeable
,AutoCloseable
,ModalCloseable
,ConnectionInitiator
,IOReactor
,IOReactorService
Multi-core I/O reactor that can act as
ConnectionInitiator
Internally
this I/O reactor distributes newly created I/O session equally across multiple
I/O worker threads for a more optimal resource utilization and a better
I/O performance. Usually it is recommended to have one worker I/O reactor
per physical CPU core.- Since:
- 4.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final MultiCoreIOReactor
private static final ThreadFactory
private final int
private final SingleCoreIOReactor[]
private final IOWorkers.Selector
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultConnectingIOReactor
(IOEventHandlerFactory eventHandlerFactory) Creates an instance of DefaultConnectingIOReactor with default configuration.DefaultConnectingIOReactor
(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig ioReactorConfig, ThreadFactory threadFactory, Decorator<IOSession> ioSessionDecorator, Callback<Exception> exceptionCallback, IOSessionListener sessionListener, Callback<IOSession> sessionShutdownCallback) DefaultConnectingIOReactor
(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig config, Callback<IOSession> sessionShutdownCallback) -
Method Summary
Modifier and TypeMethodDescriptionvoid
awaitShutdown
(TimeValue waitTime) Blocks for the given period of time in milliseconds awaiting the completion of the reactor shutdown.void
close()
void
Shuts down the I/O reactor either gracefully or immediately.Returns the current status of the reactor.(package private) IOWorkers.Selector
void
Initiates shutdown of the reactor without blocking.void
start()
Starts I/O reactor.Methods inherited from class org.apache.hc.core5.reactor.AbstractIOReactorBase
connect
-
Field Details
-
workerCount
private final int workerCount -
workers
-
ioReactor
-
workerSelector
-
THREAD_FACTORY
-
-
Constructor Details
-
DefaultConnectingIOReactor
public DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig ioReactorConfig, ThreadFactory threadFactory, Decorator<IOSession> ioSessionDecorator, Callback<Exception> exceptionCallback, IOSessionListener sessionListener, Callback<IOSession> sessionShutdownCallback) -
DefaultConnectingIOReactor
public DefaultConnectingIOReactor(IOEventHandlerFactory eventHandlerFactory, IOReactorConfig config, Callback<IOSession> sessionShutdownCallback) -
DefaultConnectingIOReactor
Creates an instance of DefaultConnectingIOReactor with default configuration.- Since:
- 5.0
-
-
Method Details
-
start
public void start()Description copied from interface:IOReactorService
Starts I/O reactor. -
getStatus
Description copied from interface:IOReactor
Returns the current status of the reactor.- Returns:
- reactor status.
-
getWorkerSelector
IOWorkers.Selector getWorkerSelector()- Specified by:
getWorkerSelector
in classAbstractIOReactorBase
-
initiateShutdown
public void initiateShutdown()Description copied from interface:IOReactor
Initiates shutdown of the reactor without blocking. The reactor is expected to terminate all active connections, to shut down itself and to release system resources it currently holds -
awaitShutdown
Description copied from interface:IOReactor
Blocks for the given period of time in milliseconds awaiting the completion of the reactor shutdown.- Parameters:
waitTime
- wait time.- Throws:
InterruptedException
-
close
Description copied from interface:IOReactor
Shuts down the I/O reactor either gracefully or immediately. During graceful shutdown individual I/O sessions should be informed about imminent termination and be given a grace period to complete the ongoing I/O sessions. During immediate shutdown all ongoing I/O sessions get aborted immediately.- Parameters:
closeMode
- How to close the receiver.
-
close
- Throws:
IOException
-