Netty定時任務HashedWheelTimer

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).
):
相關文章
相關標籤/搜索