nio的Selector

博客介绍了selector维护的三个selectKey集合。key set包含所有注册到selector的channel返回的SelectionKey;selected-key set是key集合中关注事件发生后的SelectionKey集合,处理后需删除;cancelled-key set包含被取消的SelectionKey。selected-key集合处理后删除不影响key集合。

一个selector维护着三个selectKey集合:

①key set:包含着所有的selectionKeys,所有通过register注册到selector的channel返回的SelectionKey都在这个集合里面,可以用select.keys()方法获得。

②selected-key set:在key集合中的selectionKey所关注的事件发生后,该selectionKey会被自动加入selected-key集合中,此集合中的事件需要处理,可以用select.selectedKeys()方法获得。该集合是key的子集。

③cancelled-key set:包含着被取消的selectionKey,但是关联的channel没有撤销,此集合不能直接获得。且该集合也是key set的子集。

注意 :selected-key的集合中都是发生的事件,处理后需要删除,但只是删除了selected-key中这个selectionKey,该selectionKey在key集合中还存在,当这个selectionKey关注的事件发生后,还会再次加入到selected-key集合中。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值