【Java】延迟队列DelayQueue里的坑 concurrent.Delayed

使用延迟队列需要实现Delayed接口
重要的是此接口方法
@Override
    public long getDelay(TimeUnit unit) {
        System.err.println(num++);
        return unit.convert(fireTime - System.currentTimeMillis(), TimeUnit.MILLISECONDS);
    }
如果 return convert 里使用纳秒  延迟队列延迟两秒钟取出  getDelay 会被执行9万多次  而使用毫秒只会被执行两次 
而网上的一些demo 写的都是纳秒,但我们实际用的时候 不会用到这么精确 就会导致getDelay 被执行多次


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值