首页 > 代码库 > Architecture of a Highly Scalable NIO-Based Server

Architecture of a Highly Scalable NIO-Based Server

Architecture of a Highly Scalable NIO-Based Server

 

 

Selectors

A selector (java.nio.channels.Selector and subclasses) provides a mechanism for waiting on channels and recognizing when one or more become available for data transfer. When a number of channels are registered with the selector, it enables blocking of the program flow until at least one channel is ready for use, or until an interruption condition occurs.

Although this multiplexing behavior could be implemented with threads, the selector can provide a significantly more efficient implementation using lower-level operating system constructs. A POSIX-compliant operating system, for example, would have direct representations of these concepts, select(). A notable application of this design would be the common paradigm in server software which involves simultaneously waiting for responses on a number of sessions.

Architecture of a Highly Scalable NIO-Based Server