在NioEventLoop的run方法中有如下代码片段:
当ioRatio不为100时,首先通过System.nanoTime()获取IO事件的开始处理时间,然后调用processSelectedKeys方法处理IO时间,然后再计算IO事件执行了多长时间。最后通过ioTime(IO时间)和ioRatio计算出普通任务应该执行的时间:
ioTime * (100 - ioRatio) / ioRatio。
ioRatio的默认值为50
当把ioRatio设置为100时,并不是只处理IO事件,而是处理完IO事件才处理普通任务,但不给普通任务限定执行时间。