问答详情
源自:4-2 服务器端业务处理功能实现

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

RT

提问者:qq_scooooooo_0 2019-05-07 23:33

个回答

  • 张小喜
    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

    好问题啊..哈哈