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

 更新时间:2022年02月08日 17:27:02   作者:小旺不正经  
这篇文章主要介绍了Java定时器中的Timer和TimerTask的原理。Timer主要用于Java线程里指定时间或周期运行任务,它是线程安全的,但不提供实时性(real-time)保证。接下来就跟随小编一起深入了解Timer和TimerTask吧
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

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 内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • Spring事务管理中关于数据库连接池详解

    Spring事务管理中关于数据库连接池详解

    事务的作用就是为了保证用户的每一个操作都是可靠的,事务中的每一步操作都必须成功执行,只要有发生异常就 回退到事务开始未进行操作的状态。事务管理是Spring框架中最为常用的功能之一,我们在使用Spring Boot开发应用时,大部分情况下也都需要使用事务
    2022-12-12
  • spring boot测试打包部署的方法

    spring boot测试打包部署的方法

    spring boot项目如何测试,如何部署,在生产中有什么好的部署方案吗?这篇文章就来介绍一下spring boot 如何开发、调试、打包到最后的投产上线,感兴趣的朋友一起看看吧
    2018-01-01
  • SpringAop实现操作日志记录

    SpringAop实现操作日志记录

    这篇文章主要介绍了SpringAop实现操作日志记录的方法,帮助大家更好的理解和使用SpringAop,感兴趣的朋友可以了解下
    2020-12-12
  • java 商户PC端接入支付宝支付的实现方法

    java 商户PC端接入支付宝支付的实现方法

    这篇文章主要介绍了java 商户PC端接入支付宝支付的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Java多线程之线程安全问题详情

    Java多线程之线程安全问题详情

    这篇文章主要介绍了Java多线程之线程安全问题详情,线程安全问题是指因多线程抢占式执行而导致程序出现bug的问题。内容介绍详细内容需要的小伙伴可以参考下面文章内容
    2022-06-06
  • Feign调用服务时丢失Cookie和Header信息的解决方案

    Feign调用服务时丢失Cookie和Header信息的解决方案

    这篇文章主要介绍了Feign调用服务时丢失Cookie和Header信息的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java结构型设计模式之装饰模式详解

    Java结构型设计模式之装饰模式详解

    装饰模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能
    2023-03-03
  • SpringCloud 如何使用feign时的复杂参数传递

    SpringCloud 如何使用feign时的复杂参数传递

    这篇文章主要介绍了SpringCloud 如何使用feign时的复杂参数传递方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 利用java实现邮箱群发功能

    利用java实现邮箱群发功能

    这篇文章主要为大家详细介绍了利用java实现邮箱群发功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • SpringBoot中Controller参数与返回值的用法总结

    SpringBoot中Controller参数与返回值的用法总结

    这篇文章主要介绍了SpringBoot中Controller参数与返回值的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07

最新评论

?


http://www.vxiaotou.com