java用线程实现定时器
来源:互联网 发布:小区网络布线 编辑:程序博客网 时间:2024/06/04 10:45
现在的框架的功能很强大,封装好了各种功能,例如用spring框架实现定时功能只需在配置文件里配置即可,但是我们还是要学会如何用java代码实现定时器功能。
在java中有Timer和TimerTask这两个类,下面我们就利用这两个类来实现定时器,具体某些方法的用法可以参考API。
实现这样一个定时器的有如下步骤:首先定义一个用来实现你定时要做什么事情的类,这个类继承TimerTask类,然后重写这个类的run()方法,再定义一个Timer对象,用来设置什么时候执行需要执行任务。
下面是代码还有结果:
public class TimerTest { //时间间隔,注意这里为了效果是每隔一分钟执行一次,正确的PERIOD_DAY是 24 * 60 * 60 * 1000 private static final long PERIOD_DAY = 60 * 1000; private static class MyTimerTask extends TimerTask{ @Override public void run() { // TODO Auto-generated method stub System.out.println("时间:"+new Date().toString()); } } public static void main(String[] args)throws ParseException{ MyTimerTask myTimerTask=new MyTimerTask(); Calendar calendar = Calendar.getInstance(); //设置定时的时间 calendar.set(Calendar.HOUR_OF_DAY, 21); calendar.set(Calendar.MINUTE, 32); calendar.set(Calendar.SECOND, 0); Date date=calendar.getTime(); //第一次执行定时任务的时间 //如果第一次执行定时任务的时间 小于 当前的时间 //此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。 if (date.before(new Date())) { Calendar startTime = Calendar.getInstance(); startTime.setTime(date); startTime.add(Calendar.DAY_OF_MONTH, 1); date = startTime.getTime(); } Timer timer=new Timer(); //每隔PERIOD_DAY毫秒执行一次myTimerTask,第一次执行时间是date timer.schedule(myTimerTask, date, PERIOD_DAY); }}
结果:
时间:Thu Oct 19 21:32:00 CST 2017
时间:Thu Oct 19 21:33:00 CST 2017
时间:Thu Oct 19 21:34:00 CST 2017
阅读全文
0 0
- java用线程实现定时器
- 用线程实现定时器功能
- java自行实现单线程定时器
- java的定时器 之线程实现
- 用线程实现简单的定时器
- Java线程定时器
- JAVA线程定时器(web)
- Java线程-Timer定时器
- Java线程之定时器
- 使用定时器实现线程控制
- Android定时器和线程实现
- [Java定时器]用Spring Task实现一个简单的定时器.
- Java定时器、线程池练习题
- java-线程-定时器-工具类
- java定时器和线程组
- 用定时器启动线程
- java实现定时器 以及Sring实现定时器
- java中实现定时器
- 斐波那契数列递归与非递归实现(JAVA语言描述)
- jquery使用(1)
- 在centos6编译安装httpd-2.4
- Access error when installing packages
- python访问、操作hbase
- java用线程实现定时器
- Linux 安装 Python3.6
- C语言-指针
- CSDN 里面的Markdown 添加数学公式
- JDK下载安装配置教材
- 糗事百科全站爬虫
- html常用标签
- C语言输入日期计算是该年的第几天
- Tornado框架10-WebSocket