socketChannel 为何要再次注册到选择器上?

来源:4-2 服务器端业务处理功能实现

qq_scooooooo_0

2019-05-07 23:33

RT

写回答 关注

3回答

  • 张小喜
    2019-05-09 13:58:53
    已采纳

    首先,一个Channel只能被注册到Selector上一次,如果将Channel注册多次到Selector上,其实相当于是在更新。所以,如果对Channel感兴趣的事件没有变化,是不需要重新注册的。故,源码中把再次注册的代码去掉也是不影响运行的,此处又注册了一遍只是想让大家加深印象。没想到给你带来了困惑,不好意思啊。

  • 慕粉TYJ
    2019-05-24 15:12:43

    第一次视频看我也有这个疑惑,以为selectionKey.channel()方法会移除该channel的监听事件

  • qq__577
    2019-05-18 17:09:30

    好问题啊..哈哈

网络编程入门:NIO的前世今生

解锁网络编程的“乾坤大挪移”-NIO。

32415 学习 · 33 问题

查看课程

相似问题