Wangmin:

package com.mhm.delayQueue;import java.util.concurrent.Delayed;
import java.util.concurrent.TimeUnit;public class Wangmin implements Delayed {private int id;private String name;// 下机时间private long endtime;private TimeUnit timeUnit = TimeUnit.SECONDS;public int getId() {return this.id;}public String getName() {return this.name;}public Wangmin(int id, String name, long endtime) {this.id = id;this.name = name;this.endtime = endtime;}@Overridepublic int compareTo(Delayed arg0) {Wangmin wm = (Wangmin)arg0;long d = this.getDelay(this.timeUnit) - wm.getDelay(this.timeUnit);if (d > 0) {return 1;} else if (d == 0) {return 0;} else {return -1;}}@Overridepublic long getDelay(TimeUnit arg0) {// return unit.convert(submitTime - System.nanoTime(), TimeUnit.NANOSECONDS);long flag = this.endtime - System.currentTimeMillis();// System.out.println(this.name + ", " + flag);return flag;}
}

wangba:

package com.mhm.delayQueue;import java.util.concurrent.DelayQueue;import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;public class Wangba implements Runnable {private static final Logger logger = LogManager.getLogger("Wangba");private DelayQueue<Wangmin> wmQueye = new DelayQueue<Wangmin>();public boolean yinye = true;public void shangji(int id, String name, int money) {Wangmin wm = new Wangmin(id, name, 1000*money + System.currentTimeMillis());logger.debug(name + ", 上机" + money + "秒");this.wmQueye.add(wm);}public void xiaji(Wangmin wm) {logger.debug(wm.getName() + ", 下机");}@Overridepublic void run() {while(yinye) {Wangmin wm;try {// 会按排序取出元素wm = wmQueye.take();xiaji(wm);} catch (InterruptedException e) {e.printStackTrace();}}}public static void main(String[] args) {logger.debug("开始营业");Wangba wb = new Wangba();Thread shangwang = new Thread(wb);shangwang.start();wb.shangji(8, "444", 10);wb.shangji(10, "111", 1);wb.shangji(5, "222", 5);wb.shangji(20, "333", 2);}}

DelayQueue,网吧记时相关推荐

  1. DelayQueue使用示例之KTV包厢记时

    在学习Java 多线程并发开发过程中,了解到DelayQueue类的主要作用:是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走. ...

  2. 轻松搞定网吧记费管理系统

    轻松搞定网吧记费管理系统   美萍和万象已经是过去了,现在有出现一些新的网吧记费管理系统---punwin, 呵呵,在网上搜一下关于破解pubwin的方法,怎么样?是不是少之又少?我们 这边新开了一家 ...

  3. 手机验证码倒记时函数

    /*** 倒记时* @param {object} options 设置参数* @param.fresh_text {string} 倒计时结束要显示的文字,默认使用按钮最初的文字* @param.c ...

  4. Atitit.播放系统的选片服务器,包厢记时系统 的说明,教程,维护,故障排查手册p825...

    Atitit.播放系统的选片服务器,包厢记时系统 的说明,教程,维护,故障排查手册p825 1. 播放系统服务器方面的维护 2 1.1. 默认情况下,已经在系统的启动目录下增加了俩个启动项目 2 1. ...

  5. 电脑记时----千年虫

    2019独角兽企业重金招聘Python工程师标准>>> 俗话说,山中无甲子,寒暑不知年.这讲的是记时对人类的重要性.时间对于计算机来说,尤为重要.首先,它是计算机活动的心脏,提供系统 ...

  6. Atitit. 包厢记时系统 的说明,教程,维护,故障排查手册v2 pb25.doc

    Atitit. 包厢记时系统 的说明,教程,维护,故障排查手册v2 pb25.doc 1. 服务器方面的维护1 1.1. 默认情况下,已经在系统的启动目录下增加了 个启动项目1 1.2. 后台服务.保 ...

  7. javaSE (十六)Randon、System类的方法(生成随机数、主动垃圾回收、终止jvm、对程序进行记时、System自带的复制数组的方法)

    生成0到100之间的伪随机数 主动运行垃圾回收器,相当于呼喊保洁阿姨 非0就是异常终止jvm 对程序进行记时 System自带的复制数组的方法 1. 生成0到100之间的伪随机数2. 运行垃圾回收器, ...

  8. 在线秒表 - 在线计时器 - 在线记时器

    在线秒表 - 在线计时器 - 在线记时器 https://www.online-stopwatch.com/ https://www.online-stopwatch.com/chinese/ 1. ...

  9. 仿热血江湖帮战客方血帮战 准备记时器结束事件

    public void timer_0_Elapsed(object sender, ElapsedEventArgs e)         {             if (GClass4.int ...

最新文章

  1. 如何理解导远技术手册
  2. 003-代码补全,运行,调试
  3. python【蓝桥杯vip练习题库】BASIC-9特殊回文数
  4. 分享android开发过程中用到的一些开源框架
  5. Kotlin实战指南十一:扩展函数
  6. JMeter入门(3):录制JMeter脚本
  7. [深度学习] FM FFM 算法基本原理
  8. 多迪技术总监揭秘:PHP为什么是世界上最好的语言?
  9. hdfs复制文件夹_Hadoop框架:HDFS简介与Shell管理命令
  10. 数值分析(第五版) 第二章知识点总结
  11. 漫画:什么是希尔排序?
  12. Allegro异型焊盘制作_百度经验
  13. win下php+mysql+apache配置
  14. 小知识--oppo R9sk手机刷机
  15. 致前行者 | 他们,只用了两公里地铁的钱,就实现了中国探月
  16. 2022保研面试经历
  17. 阿里数据中台维度建模规范、维度模型设计及模型实施方法论
  18. 爬虫基础以及Xpath、Beautiful Soup的应用
  19. 你是否每天都认真洗手了?数据告诉你洗手时最容易忽视的部位有哪些
  20. clr(clr a是什么指令)

热门文章

  1. html5 | 通过js实现对网页文本内容语音朗读 | 教程
  2. Linux启动引导参数grub
  3. 近3千多道小学语数英知识题ACCESS数据库
  4. 迅为开发板4412开发板-ANROID系统的烧写方法分享
  5. python抓取微信文件_fiddle python抓取微信公众号文章
  6. 电子设计应用超声波测距仪的设计
  7. iPad air2 充不进去电
  8. (2022)Epic添加本地游戏
  9. 媒体格式有几种,媒体格式的异同
  10. 批量爬起百度图片上的数据代码--python