Java--Timer--使用/常用方法/实例

桃扇骨 2023-10-02 13:05 100阅读 0赞

原文网址:Java—Timer—使用/常用方法/实例_IT利刃出鞘的博客-CSDN博客

简介

本文用示例介绍Java中的定时器Timer的用法。

方法大全

默认情况下,Timer 创建的线程为用户线程, 如果想让其为守护进程的话, 创建时需要设置isDaemon 为true。

构造方法




















方法

方法描述

public Timer(String name)

构造方法,创建定时器,并指定线程名称。以定时调度线程为用户线程

public Timer(boolean isDaemon)

构造方法,创建定时器,isDaemon 设置为true时表示以守护线程执行

public Timer(String name, boolean isDaemon)    

构造方法,创建定时器,并指定线程名称。isDaemon 设置为true时表示以守护线程执行

其他方法








































方法

方法描述

public void schedule(TimerTask task, long delay)

只调度一次,迟delay毫秒之后执行

public void schedule(TimerTask task, Date time)

只调度一次,在具体时刻time 执行

public void schedule(TimerTask task, long delay, long period)

循环调度,在delay毫秒之后开始,每隔period毫秒执行一次

public void schedule(TimerTask task, Date firstTime, long period)

循环调度,在时刻firstTime开始调度,每隔period毫秒执行一次

public void scheduleAtFixedRate(TimerTask task, long delay, long period)

和schedule方法类似,只是错过的任务会被继续执行

public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)

和schedule方法类似,只是错过的任务会被继续执行

public int purge()

清理所有已取消状态的TimerTask

public void cancel()

取消所有调度

实例

延时调度一次

程序启动3秒之后, 执行一次

  1. public static void main(String[] args) throws InterruptedException {
  2. // 创建定时器
  3. Timer timer = new Timer("myTimer");
  4. // 创建定时任务
  5. TimerTask timerTask = new TimerTask() {
  6. @Override
  7. public void run() {
  8. System.out.println(LocalDateTime.now() + "-hello");
  9. }
  10. };
  11. // 添加调度
  12. timer.schedule(timerTask ,3000);
  13. }

定时调度一次

定时任务在下一分钟00秒时执行一次

  1. public static void main(String[] args) throws InterruptedException {
  2. // 创建定时器
  3. Timer timer = new Timer("myTimer");
  4. // 创建定时任务
  5. TimerTask timerTask = new TimerTask() {
  6. @Override
  7. public void run() {
  8. System.out.println(LocalDateTime.now() + "-hello");
  9. }
  10. };
  11. Date nextMinute = nextMinute();
  12. System.out.println("now:" + new Date() + ", execute:" + nextMinute);
  13. // 添加调度
  14. timer.schedule(timerTask ,nextMinute);
  15. }
  16. // 获取下一分钟的时间
  17. private static Date nextMinute(){
  18. Calendar calendar = Calendar.getInstance();
  19. calendar.add(Calendar.MINUTE, 1);
  20. calendar.add(Calendar.SECOND, -calendar.get(Calendar.SECOND));
  21. return calendar.getTime();
  22. }

循环调度n次

上边是文章的部分内容,为便于维护,全文已转移到此网址:Java-Timer-使用 - 自学精灵

发表评论

表情:
评论列表 (有 0 条评论,100人围观)

还没有评论,来说两句吧...

相关阅读