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). ):