HashedWheelTimer 主要用来高效处理大量定时任务, 且任务对时间精度要求相对不高, 好比连接超时管理等场景, 缺点是, 内存占用相对较高函数
//建立Timer, 精度为100毫秒 HashedWheelTimer timer = new HashedWheelTimer(100, TimeUnit.MILLISECONDS); System.out.println(LocalTime.now()); timer.newTimeout(timeout -> { System.out.println(LocalTime.now()); System.out.println(Thread.currentThread().getId()); },5,TimeUnit.SECONDS); System.out.println(Thread.currentThread().getId());
构造函数线程
HashedWheelTimer( ThreadFactory threadFactory, //相似于Clock中的updater, 负责建立Worker线程. long tickDuration, //时间刻度之间的时长(默认100ms), 通俗的说, 就是多久tick++一次. TimeUnit unit, //tickDuration的单位. int ticksPerWheel //相似于Clock中的wheel的长度(默认512). ):