java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java Timer

Java Timer与TimerTask类使程序计时执行

作者:小旺不正经

这篇文章主要介绍了Java定时器中的Timer和TimerTask的原理。Timer主要用于Java线程里指定时间或周期运行任务,它是线程安全的,但不提供实时性(real-time)保证。接下来就跟随小编一起深入了解Timer和TimerTask吧

Java 程序设计 Timer&TimerTask类

Timer&TimerTask类

根据设定的时间安排实现程序任务的自动执行

每一个调度任务类都需要继承java.util.TimerTask父类,任务的启动需要通过java.util.Timer类完成

TimerTask类常用方法

方法作用
public void cancel()终止任务
public void run()任务需要执行的具体操作
public long scheduleExecutionTime()返回最近一次要执行该任务的时间

Timer类常用方法

方法作用
public Timer()创建一个计时器并启动该计时器
public void cancel()用来终止该计时器,并放弃所以已安排的任务,对当前正在执行的任务没有影响
public int purge()将所有已经取消的任务移除,用来释放内存空间
public void schedule(TimerTask task,Date time)安排一个任务在指定的时间执行,如果已经超过该时间,立即执行
public void schedule(TimerTask task,Date firstTime,long period)安排一个任务在指定的时间执行,之后以固定的频率重复执行
public void schedule(TimerTask task,long delay)安排一个任务在一段时间后执行
public void schedule(TimerTask task,long delay,long period)安排一个任务在一段时间后执行,之后以固定的频率重复执行
public void schedule AtFixedRate(TimerTask task,Date firstTime,long period)安排一个任务在指定的时间执行,之后以近似固定的频率重复执行
public void schedule AtFixedRate(TimerTask task,long delay,long period)安排一个任务在一段时间后执行,之后以近似固定的频率重复执行

schedule()方法的执行时间间隔永远是固定的,如果之前出现了延迟的情况,之后也会继续按照设定好的间隔时间来执行。

scheduleAtFixedRate()方法可以根据出现的延迟时间自动调整下一次间隔的执行时间。

演示:

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

class Test extends TimerTask{
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+"时间:"+System.currentTimeMillis());
    }
}
public class Hello {
    public static void main(String[] args) {
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new Test(),100,1000);
    }
}

image-20220202102740645

timer.scheduleAtFixedRate(new Test(),100,1000);

定义间隔任务,100毫秒后开始执行,每间隔1秒执行1秒

到此这篇关于Java Timer与TimerTask类使程序计时执行 的文章就介绍到这了,更多相关Java Timer 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文