选择器提供选择执行已经就绪的任务的能力 这使多元I/O成为可能
就绪选择和多元执行使得单线程能够有效地管理多个I/O通道
尽管SelectableChannel类上定义了register()方法 还是应该将通道注册到选择器上
任何一个通道和选择器的注册关系都被封装在一个SelectionKey对象中
深入理解选择器:
selector内部工作原理
选择器维护着注册过的通道的集合 而且这些注册关系中的任意一个都是封装在SelectionKey对象中
每个Selector对象维护三个键的集合: