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).
):
相关文章
相关标签/搜索