Netty中有很多依赖计时器任务实现的场景,典型的有客户端连接的超时控制、通信双方连接的心跳检测等场景。 在学习Netty Reactor线程模型时,我们知道NioEventLoop不仅负责处理I/O事件,还负责执行任务队列中的任务,包括计划任务。 为了实现高性能的定时任务调度,Netty引入了时间轮算法来驱动定时任务的执行。 时间之轮到底是什么呢? 为什么Netty必须在时间轮上处理定时任务呢? JDK本机实现方案不能满足要求吗?
说明:本文引用的Netty源代码版本为4.1.42.Final。
文章目录定时任务基础知识timerdelayedqueuescheduledthreadpoolexecutor时间轮原理分析Netty HashedWheelTimer源代码分析界面定义快速熟练的内部结构添加任务工作线程工作器停止定时器