目录
SelectionKey
Selector
Channle (SocketChannel)
很简单,搞明白下面3个组件就行了
SelectionKey
聚合了
Selector, Channel, interestOps(感兴趣的事件)
信息
Selector
选择器,监听操作系统的读写状态是否ready。
记录了和自己相关的所有 SelectionKey。
(多个channel可以注册到同一个Selector上)
如果自己关闭:触发所有和自己相关的Channle 自杀
(所以一个channel不能注册到多个channel上)
Channle (SocketChannel)
一个读写通道
记录了和自己相关的所有 SelectionKey
如果通道关闭:触发所有 SelectionKey.cancel()操作。告诉Selector和我这个channle相关的SelectionKey都失效了。后续不需要在监听这些事件了
nio例子参见
java_nio例子