一个简单的定时器

编程技术  /  houtizong 发布于 3年前   86
package com.boz;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Date;import java.util.concurrent.*;import javax.swing.Timer;public class TimerTask  {ExecutorService pool;private static TimerTask timeTask=null;public static void main(String[] args) throws InterruptedException {// TODO Auto-generated method stubTimerTask t=TimerTask.getTimerTask(10);for(int i=0;i<1000;i++){t.AddTask(500, new task(i));}Thread.currentThread().sleep(100000);}private TimerTask(int n) {// TODO Auto-generated constructor stub//初始化线程池this.pool=Executors.newFixedThreadPool(n);}//如果没有初始化TimerTask类,则使用n作为线程池参数初始化线程;public static TimerTask getTimerTask(int n){if(TimerTask.timeTask==null){TimerTask.timeTask=new TimerTask(n);}return TimerTask.timeTask;}public Timer AddTask(int ms,Runnable obj){//添加定时任务,该定时任务Timer t=new Timer(ms,new TimerTaskAction(obj));System.out.printf("%s %s%n", new Date().toString(),"start Timer");t.start();return t;}class TimerTaskAction implements ActionListener{//定时任务的事件监听器只是简单的将任务对象添加到线程池中private Runnable obj=null;public TimerTaskAction(Runnable Obj){this.obj=Obj;}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubpool.submit(this.obj);}}}class task implements Runnable{//该任务必须实现Runnable接口private int n=0;public task(int iN){this.n=iN;}@Overridepublic void run() {// TODO Auto-generated method stubSystem.out.printf("%s %d%n", new Date().toString(),this.n);}}

 

<div class="it610-blog-content-contain" style="font-size: 14px"></div>

 鉴于java中定时器都会因为某个任务的执行缓慢而导致后面的任务不断延迟。所以编写了下面一个小程序做了一个延迟小的定时器。

说明:定时器使用javax.swing.Timer作为基础定时器,它在定时到达时会将任务添加到线程池FixedThreadPool中,任务由线程池运行。

疑问:javax.swing.Timer定时器从执行start到定时器触发有2到3秒的延迟。例如在第1秒执行start,定时为1000ms的情况下监听器会在第4第5秒执行;

 

 

 

 

 

 

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客