public class Q {
public static void main(String[] args) throws Exception {
DelayQueue<Order> orders = new DelayQueue<>();
Order order1 = new Order(1000, "1x");
Order order2 = new Order(2000, "2x");
Order order3 = new Order(3000, "3x");
Order order4 = new Order(4000, "4x");
orders.add(order1);
orders.add(order2);
orders.add(order3);
orders.add(order4);
for (; ; ) {
//没有到期会阻塞
Order take = orders.take();
System.out.println(take);
}
}
} class Order implements Delayed {
@Override
public String toString() {
return "DelayedElement{" + "delay=" + delayTime +
", expire=" + expire +
", data='" + data + '\'' +
'}';
} Order(long delay, String data) {
delayTime = delay;
this.data = data;
expire = System.currentTimeMillis() + delay;
} private final long delayTime; //延迟时间
private final long expire; //到期时间
private String data; //数据 /**
* 剩余时间=到期时间-当前时间
*/
@Override
public long getDelay(TimeUnit unit) {
return unit.convert(this.expire - System.currentTimeMillis(), TimeUnit.MILLISECONDS);
} /**
* 优先队列里面优先级规则
*/
@Override
public int compareTo(Delayed o) {
return (int) (this.getDelay(TimeUnit.MILLISECONDS) - o.getDelay(TimeUnit.MILLISECONDS));
}
}

最新文章

  1. Java消息队列--JMS概述
  2. Eclipse集成Tomcat的配置步骤实例
  3. 【Android Studio使用教程6】Execution failed for task &#39;:&#215;&#215;&#215;:compileReleaseAidl&#39;
  4. Discuz! x 2.5-3.0 beta 存储型跨站漏洞
  5. linux crontab设置
  6. ubuntu 下 apache+tomcat整合_(mod-jk方法)[转]
  7. ubuntu下编译内核驱动。
  8. BZOJ_4176_Lucas的数论_杜教筛+莫比乌斯反演
  9. LVM 移除PV步骤
  10. 在docker上部署mysql
  11. Pandas模块
  12. mysql 关于数据库和数据表的基本操作
  13. Linux 查看内存状态
  14. js 检测变量是否存在
  15. SpringBoot普通类中如何获取其他bean例如Service、Dao(转)
  16. 03-body标签中相关标签-2
  17. Linux Shell 内建命令:冒号(:)
  18. java异常及日志注意事项
  19. 【原】[UIImage imageWithContentsOfFile:]引发的图片无法显示的问题
  20. PAT 1074. Reversing Linked List

热门文章

  1. nginx代理 tomcat获得真实用户IP
  2. Mockito中的@Mock和@Spy如何使用
  3. 如何从git上批量拉取本地当前分支的所有代码
  4. flex整页布局
  5. MySQL通过 LOAD DATA INFILE 批量导入数据
  6. Linux中的sudoer详解
  7. 深圳即将启动首届「全国人工智能大赛」:超过 500 万大奖 &amp; 政府资助,潜信息你读懂了吗!
  8. zoomeye使用
  9. 【安徽集训】Emerald
  10. Hdu 1851 Nim+巴什博弈