永发信息网

java 中timer类的用法是什么?

答案:3  悬赏:50  手机版
解决时间 2021-01-26 15:13
java 中timer类的用法是什么?
最佳答案
现在项目中用到需要定时去检查文件是否更新的功能。timer正好用于此处。
用法很简单,new一个timer,然后写一个timertask的子类即可。
package comz.autoupdatefile;

import java.util.Timer;
import java.util.TimerTask;

public class M {
public static void main(String[] args) {
// TODO todo.generated by zoer
Timer timer = new Timer();
timer.schedule(new MyTask(), 1000, 2000);
}
}

class MyTask extends TimerTask {

@Override
public void run() {
System.out.println("dddd");

}

}
这样,就可以在1秒钟之后开始执行mytask,每两秒钟执行一次。
当然,timer的功能也可以通过自己构造线程,然后在线程中用sleep来模拟停止一段时间,然后再执行某个动作。
其实,看一下timertask的源码就立即可以知道,timertask就是实现了runnable接口的。也就是说,通过timer来间隔一段时间执行一个操作,也是通过一个线程来做到的。
全部回答
所有类型的 Java 应用程序一般都需要计划重复执行的任务。企业应用程序需要计划每日的日志或者晚间批处理过程。一个 J2SE 或者 J2ME 日历应用程序需要根据用户的约定计划闹铃时间。不过,标准的调度类 Timer 和 TimerTask 没有足够的灵活性,无法支持通常需要的计划任务类型。在本文中,Java 开发人员 Tom White 向您展示了如何构建一个简单通用的计划框架,以用于执行任意复杂的计划任务。   把 java.util.Timer 和 java.util.TimerTask 统称为 Java 计时器框架,它们使程序员可以很容易地计划简单的任务(注意这些类也可用于 J2ME 中)。在 Java 2 SDK, Standard Edition, Version 1.3 中引入这个框架之前,开发人员必须编写自己的调度程序,这需要花费很大精力来处理线程和复杂的 Object.wait() 方法。不过,Java 计时器框架没有足够的能力来满足许多应用程序的计划要求。甚至一项需要在每天同一时间重复执行的任务,也不能直接使用 Timer 来计划,因为在夏令时开始和结束时会出现时间跳跃。   本文展示了一个通用的 Timer 和 TimerTask 计划框架,从而允许更灵活的计划任务。这个框架非常简单 ?? 它包括两个类和一个接口 ?? 并且容易掌握。如果您习惯于使用 Java 定时器框架,那么您应该可以很快地掌握这个计划框架。   计划单次任务   计划框架建立在 Java 定时器框架类的基础之上。因此,在解释如何使用计划框架以及如何实现它之前,我们将首先看看如何用这些类进行计划。   想像一个煮蛋计时器,在数分钟之后(这时蛋煮好了)它会发出声音提醒您。清单 1 中的代码构成了一个简单的煮蛋计时器的基本结构,它用 Java 语言编写: 清单 1. EggTimer 类 package org.tiling.scheduling.examples; import java.util.Timer; import java.util.TimerTask; public class EggTimer { private final Timer timer = new Timer(); private final int minutes; public EggTimer(int minutes) { this.minutes = minutes; } public void start() { timer.schedule(new TimerTask() { public void run() { playSound(); timer.cancel(); } private void playSound() { System.out.println("Your egg is ready!"); // Start a new thread to play a sound... } }, minutes * 60 * 1000); } public static void main(String[] args) { EggTimer eggTimer = new EggTimer(2); eggTimer.start(); } }   EggTimer 实例拥有一个 Timer 实例,用于提供必要的计划。用 start() 方法启动煮蛋计时器后,它就计划了一个 TimerTask,在指定的分钟数之后执行。时间到了,Timer 就在后台调用 TimerTask 的 start() 方法,这会使它发出声音。在取消计时器后这个应用程序就会中止。

这是方法1  你看可以么

还有方法2  就是取两个时间差(毫秒数)   得到结果

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
qq空间留言板怎样设置不打验证码
环球汽车维修中心(渚阳大街南182)地址有知道
中国信合(五里分社)(人民南路东50米中国信合)
100字寒假日记28篇要快今天 发过来
西铁城表盘内MDAEINJAPAN N-H500-S083902KA是
在合同期满的情况下公司不给走,自己写了辞职
成语轹釜待炊的意思是什么啊?有知道释义的请
天下武功,无坚不摧,唯快不破!这句话什么意思?
美食大冒险里面第几集出现了哈马丹
力驰多汽车养护中心(中达路与车站南路交叉口
老婆买了一台日版iPhone6P,最近wifi能连接,
【未来世界是什么样子的】未来世界是什么样子
硬盘扫描有丢失毛病严重吗
成语绿衣使者的意思是什么啊?有知道释义的请
锅炉废水处理装置都有什么?
推荐资讯
成语狼突豕窜的意思是什么啊?有知道释义的请
六安安和汽车销售服务有限公司地址好找么,我
文明网吧地址有知道的么?有点事想过去
为什么你工作三四年,月薪还是三四千
浚县鹤壁陕西岐山烙面皮怎么去啊,谁知道地址
人定胜天英语怎么说?
某有限责任公司股东甲、乙、丙、丁分别持有公
我想往出兑店应该选择哪个网站呢
吉他怎样调出天空之城的音
【稀饭和粥的区别】电压锅里煮稀饭和粥有区别
前进村地址在什么地方,想过去办事
郑州火车站安踏鞋店买一赠一是赠的一样价位的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?