key.interestOps(key.readyOps() & ~ ops)取消了感兴趣的事件,那又在哪里恢复了事件呢?

来源:7-10 NIO服务器Thread优化-4

qq_蓝城_1

2019-11-05

写回答

1回答

Qiujuer

2019-11-07

我写一下整个的流程哈:
1. 想要读取数据-首先注册读取事件

2. 有数据来了-读取事件就绪

3. 开始取消兴趣关注(如果不取消,因为轮训是单独的线程,在此轮训时会再次发现就绪,会反复去多并非读取,导致数据错乱。)

4. 线程池-处理读取数据事件

5. 读取数据完成

6. 想要再次读取数据-再次注册读取事件


循环。

1
1
Qiujuer
这个过程中,涉及:轮训线程-读取线程池的切换。
2019-11-07
共1条回复

Socket网络编程进阶与实战 系统掌握Socket核心技术

理论+实践,系统且深入掌握Socket核心技术,从容应对各种Socket应用场景的不二之选

2314 学习 · 476 问题

查看课程