netty源码:(58)NioEventLoop中处理IO事件和普通事件的时间比例是多少?

在NioEventLoop的run方法中有如下代码片段:
netty源码:(58)NioEventLoop中处理IO事件和普通事件的时间比例是多少?_第1张图片
当ioRatio不为100时,首先通过System.nanoTime()获取IO事件的开始处理时间,然后调用processSelectedKeys方法处理IO时间,然后再计算IO事件执行了多长时间。最后通过ioTime(IO时间)和ioRatio计算出普通任务应该执行的时间:
ioTime * (100 - ioRatio) / ioRatio。

ioRatio的默认值为50
netty源码:(58)NioEventLoop中处理IO事件和普通事件的时间比例是多少?_第2张图片
当把ioRatio设置为100时,并不是只处理IO事件,而是处理完IO事件才处理普通任务,但不给普通任务限定执行时间。
netty源码:(58)NioEventLoop中处理IO事件和普通事件的时间比例是多少?_第3张图片

你可能感兴趣的:(Netty,java)