当前位置: 首页 > news >正文

建筑工程官网百度搜索关键词排名人工优化

建筑工程官网,百度搜索关键词排名人工优化,seo快速培训,vps网站搬家目录 一、定时器的概念 二、Java 标准库中的定时器 三、实现自己的定时器 一、定时器的概念 什么是定时器#xff1f;定时器是软件开发中的一个常用且重要组件#xff0c;作用是在达到设定时间后#xff0c;执行指定的代码。 二、Java 标准库中的定时器 1#xff09;T…目录 一、定时器的概念 二、Java 标准库中的定时器 三、实现自己的定时器 一、定时器的概念 什么是定时器定时器是软件开发中的一个常用且重要组件作用是在达到设定时间后执行指定的代码。 二、Java 标准库中的定时器 1Timer 类在 Java 中使用 Timer 类实现定时器的功能。Timer 类使用 schedule() 方法为定时器添加待执行任务。 2schedule() 方法schedule() 方法需要两个参数第一个参数是计划执行的任务代码第二个参数是任务等待多少时间后开始执行。 代码演示 Timer 类的使用 public class Timer_Demo0 {public static void main(String[] args) {//新建定时器Timer timer new Timer();//设定任务为打印等待3秒后执行timer.schedule(new TimerTask() {Overridepublic void run() {System.out.println(3号举手);}},3000);//设定任务为打印等待2秒后执行timer.schedule(new TimerTask() {Overridepublic void run() {System.out.println(2号举手);}},2000);//设定任务为打印等待1秒后执行timer.schedule(new TimerTask() {Overridepublic void run() {System.out.println(1号举手);}},1000);} }//运行结果 1号举手 2号举手 3号举手 ...程序没有结束运行。 3为什么程序没有结束Timer 类中内置的线程是一个前台线程只要有一个前台线程未结束程序就不会停止运行。 三、实现自己的定时器 定时器结构分析 定时器可以设定多个任务这些任务根据时间的先后按顺序执行。 把这些任务放在一个队列中每次要执行的任务肯定是离计划时间最近的那个。 因此使用优先级队列就可以达成这一目的。 优先级队列中需要存放的元素就是通过 schedule() 方法加入的任务。 每个元素的属性都应该包括一份可执行的代码和一个设定的时间。 我们还需要在定时器中有一个工作线程用于观测优先级队列的队首元素是否达到了执行时间。 代码演示实现自己的定时器 //队列中的元素 MyTask 类 class MyTask implements ComparableMyTask{//任务内容private Runnable runnable;//执行时间单位是一个毫秒级别的时间戳private long time;public long getTime(){return time;}//使用任务内容和相对时间构造MyTaskpublic MyTask(Runnable runnable,long delay){this.runnable runnable;//系统当前时间相对时间this.time System.currentTimeMillis()delay;}public void run(){runnable.run();}//作为优先级队列的元素需要可比较Overridepublic int compareTo(MyTask o) {return (int) (this.time - o.time);} }//定时器类 class MyTimer{//存放任务的队列private PriorityQueueMyTask queue new PriorityQueue();//保持监测的线程private Thread t;//锁对象private final Object locker new Object();//schedule方法向优先级队列中添加元素public void schedule(Runnable runnable,long delay){synchronized (locker){MyTask task new MyTask(runnable,delay);queue.offer(task);//入队列了有元素了可以唤醒线程了locker.notify();}}//关闭定时器方法public void cancel(){t.interrupt();}//定时器构造方法new定时器时就把监测线程打开了public MyTimer(){t new Thread(()-{try {while (true){//加锁下面的判断状态和修改数据的代码需要原子synchronized (locker){//队列空了线程就等待if(queue.isEmpty()){locker.wait();}//查看任务是否到达执行时间MyTask task queue.peek();long curTime System.currentTimeMillis();long taskTime task.getTime();if(curTime taskTime){queue.poll();task.run();}else {//还没到达执行时间则计算还有多久并根据这个时间等待locker.wait(taskTime - curTime);}}}}catch (InterruptedException e){//调用 cancel() 方法时抛出这个异常结束线程并执行下述代码System.out.println(定时器关闭);}});//线程在计时器被new出来时就要保持运行的状态随时监测任务队列t.start();} } 代码演示执行自己实现的定时器 public static void main(String[] args) throws InterruptedException {//新建一个定时器MyTimer timer new MyTimer();//添加三个任务timer.schedule(new TimerTask() {Overridepublic void run() {System.out.println(3号举手);}},3000);timer.schedule(new TimerTask() {Overridepublic void run() {System.out.println(2号举手);}},2000);timer.schedule(new TimerTask() {Overridepublic void run() {System.out.println(1号举手);}},1000);//等待5秒此时上述定时器任务已经执行完毕Thread.sleep(5000);//调用 cancel() 方法关闭定时器。timer.cancel();} 阅读指针 - 《经典设计模式之 -- 线程池》 JavaEE 经典设计模式之 -- 线程池-CSDN博客文章浏览阅读2次。简单介绍了线程池的概念和Java标准库中的两个线程池相关类。其中重点介绍了ThreadPoolExecutor 类的使用和其构造方法参数的概念。另外还实现一个自己的线程池类。https://blog.csdn.net/zzy734437202/article/details/134860513
http://www.w-s-a.com/news/631844/

相关文章:

  • 免费高清网站推荐喂来苏州网络科技有限公司
  • php做的大型网站有哪些备案博客域名做视频网站会怎么样
  • 去哪网站备案吗昭通网站建设
  • flash企业网站源码建筑材料采购网站
  • 网站可以换虚拟主机吗部门做网站优点
  • 如何做分类网站信息营销莱芜网页定制
  • 班级网站建设感想中国做视频网站有哪些
  • 做刷票的网站wordpress图片链接插件
  • 给客户做网站图片侵权沈阳做网站的地方
  • 网站开发步骤规划蓝天云免费空间主机
  • 网站字体规范wordpress找不到页面内容编辑
  • 静态网站建设参考文献茂名营销型网站制作公司
  • 君山区建设局网站风铃微网站怎么做
  • 购物网站销售管理合肥网络推广平台
  • 网站建设规划书txt微盘注册帐号
  • 小说网站开发实训报告企业网盘收费标准
  • mvc网站开发医疗医院网站建设
  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做
  • 海南三亚做网站公众号版面设计创意
  • 学校网站建设目的与意义合肥网页定制
  • 网站查询地址网站建设与维护费用
  • 做网站哪些软件比较好合肥外贸网站建设公司
  • 建网站需要哪些条件专业网站设计报价
  • 定制网站开发技术化妆品的网站布局设计图片大全
  • 网站模糊设计发布产品的免费平台有哪些
  • 网站建站什么目录桂林网站建设内容
  • 光明新区城市建设局网站长沙营销型网站制作费用
  • 网站建设制度制定wordpress主题哥