Java NIO(5):Selectors(选择器)

选择器提供选择执行已经就绪的任务的能力 这使多元I/O成为可能

就绪选择和多元执行使得单线程能够有效地管理多个I/O通道

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

尽管SelectableChannel类上定义了register()方法 还是应该将通道注册到选择器上

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

任何一个通道和选择器的注册关系都被封装在一个SelectionKey对象中

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)


Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

深入理解选择器:

selector内部工作原理

选择器维护着注册过的通道的集合 而且这些注册关系中的任意一个都是封装在SelectionKey对象中

每个Selector对象维护三个键的集合:

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)

Java NIO(5):Selectors(选择器)