问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 中timer类的用法是什么?

发布网友 发布时间:2022-04-24 11:45

我来回答

2个回答

热心网友 时间:2022-04-19 01:23

现在项目中用到需要定时去检查文件是否更新的功能。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.schele(new MyTask(), 1000, 2000);
}
}

class MyTask extends TimerTask {

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

}

}
这样,就可以在1秒钟之后开始执行mytask,每两秒钟执行一次。
当然,timer的功能也可以通过自己构造线程,然后在线程中用sleep来模拟停止一段时间,然后再执行某个动作。
其实,看一下timertask的源码就立即可以知道,timertask就是实现了runnable接口的。也就是说,通过timer来间隔一段时间执行一个操作,也是通过一个线程来做到的。

热心网友 时间:2022-04-19 02:41

所有类型的 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.scheling.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.schele(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() 方法,这会使它发出声音。在取消计时器后这个应用程序就会中止。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
!这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 黑枸杞是不是冲水后颜色越深越好 碱性水泡出的黑枸杞是什么颜色 黑枸杞在酸性水与碱性水中都是黄红色是假的嘛 杞里香黑果枸杞 黑枸杞泡水是什么味道 莲雾怎么吃,莲雾怎么吃图解,莲雾可以直接吃吗 黑枸杞泡水是什么味道,甜的还是酸的? 为什么霍金没有获得诺贝尔奖? 霍金为物理学作出巨大贡献,为什么却没有获得诺贝尔奖 关于莲雾的吃法 霍金去世享年76岁,为什么他没有获得诺贝尔奖 著名人物霍金,他有没有资格获得诺贝尔奖这个奖项? 莲雾的吃法 霍金获得了诺贝尔奖吗? 莲雾怎么吃,莲雾的正确吃法 霍金一生这么伟大,为什么从没有获得过诺贝尔奖 莲雾吃法都有哪些? 霍金为何没有获得诺贝尔奖? 你如何评价霍金没有获得诺贝尔奖? 霍金这么厉害,为什么他没有获得过诺贝尔物理学奖 java timer 用法 微信与支付宝两大互联网移动支付市场的对比分析 java 中 如何使用Timer? java关于Timer计时器的问题求解 什么是JavaTimer类?如何创建一个有特定时间间隔的任务? java的timer类如何判断程序超时呢? 微信支付和支付宝有什么区别? java的Timer类怎么无法执行计时器任务了? java 定时器 timer java 中定时器timer是被什么触发的 java timer类自动执行 怎么用java中的timer做出延迟效果? 著名物理学家霍金去世享年76岁,为什么他未曾获得诺贝尔奖? 平语进校园童谣! 用java里timer执行定时任务,怎么写 被誉为近代最伟大科学家的霍金,为何一生无缘诺贝尔奖? 关于java定时器Timer的疑问,当执行时间大于间隔时间会怎样? 小学二年级语文考试后家长评语 一 请问JAVA中,怎么设置程序的运行间隔,Timer应该怎么用? 物理学天才霍金为什么没有获得诺贝尔奖?