3.2.5.Final
它的实现上是一个一维数组,但把它当成一个环形数组使用.如同时间的车轮一样....K点,Q点)就等于startTime+tickDuration * n
时间轮初始化之后,它的结构如下图
假如此时时间轮正在执行下图中S格子中的任务,这时向时间轮中添加一个延时delay的任务,时间轮会根据当前所处的位置和时刻...接下来将当前格子中的所有任务遍历一遍,找出任务的deadline(每个任务在放入时间轮的时候,都会有一个deadline值)比图中deadline小的任务,把它们放入一个集合,然后执行它们.
// 这个方法都在处理同一个格子里面的任务...HashMap存储任务的,而且每个格子都有一个迭代器,用于迭代HashMap中的任务....,假如当前正在准备执行tick=2的格子中的任务,如果当前时间没有走到deadline时刻,那么线程睡眠,直到时间到达deadline时刻,那么就开始执行格子中的任务(每个格子中的任务都是外部线程提交到时间轮里的