轮询
来源:4-8 检测IO事件

everyday_java
2021-06-19
老师好,关于这一段,
为什么 当前时间 time - 开始时间 currentTimeNanos >= 超时时间的话, selectCnt = 1 ?
这个有点不太理解? 😭
写回答
1回答
-
吕相赫
2021-07-03
从“开始的时间”起,中间进行了阻塞式的select(在这个情况下:如果截止时间没到,且异步队列为空的话,那么就进行一个阻塞式的select操作),阻塞是需要花费时间的,只有被select监听的fd有读写操作时,才被唤醒,超过了“超时时间”就证明发生了阻塞,所以select执行次数selectCnt(count计数的意思)+1;
当然如果没有超过“超时时间的话”,证明没有阻塞生效,也就是没有阻塞就立即返回了;这个时候返回的可能就是一个空数组,然后while死循环,后面的自己查吧,就是jdk空轮询。
00
相似问题