java Timer测试定时调用及固定时间执行代码示例

作者:Alioo-壞人 时间:2023-12-09 14:36:44 

本文实例主要进行java Timer(定时调用、固定时间执行)测试,具体实现代码如下。

测试1

当任务执行时间小于重复执行的间隔时间

代码:


public class TimerTest2 {
 public static void main(String[] args) throws InterruptedException {
   Timer timer = new Timer();
   timer.schedule(new MyTask(0), 1000, 10000);
   //timer.schedule(new MyTask(1), 1000, 10000);
 }

static class MyTask extends TimerTask {
   private final int i;
   public MyTask(int i) {
     this.i = i;
   }

@Override
   public void run() {
     System.out.println(i + "dddd" + DateTimeUtil.getDateTimeString("yyyy-MM-dd HH:mm:ss.SSS"));
     try {
       if (i == 0) {
         Thread.sleep(8000L);
       } else {
         Thread.sleep(13000L);
       }
     } catch (Exception e) {
       e.printStackTrace();
     }
   }
 }
}

结果:

0dddd2018-01-11 15:34:57.826
0dddd2018-01-11 15:35:07.824
0dddd2018-01-11 15:35:17.824
0dddd2018-01-11 15:35:27.824
0dddd2018-01-11 15:35:37.824
0dddd2018-01-11 15:35:47.824
0dddd2018-01-11 15:35:57.824
0dddd2018-01-11 15:36:07.824
0dddd2018-01-11 15:36:17.824
0dddd2018-01-11 15:36:27.824
0dddd2018-01-11 15:36:37.824
0dddd2018-01-11 15:36:47.824
0dddd2018-01-11 15:36:57.824
0dddd2018-01-11 15:37:07.824
0dddd2018-01-11 15:37:17.824
0dddd2018-01-11 15:37:27.824
0dddd2018-01-11 15:37:37.824

测试2

当任务执行时间大于重复执行的间隔时间

代码:


public class TimerTest2 {
 public static void main(String[] args) throws InterruptedException {
   Timer timer = new Timer();
   //timer.schedule(new MyTask(0), 1000, 10000);
   timer.schedule(new MyTask(1), 1000, 10000);
 }

static class MyTask extends TimerTask {
   private final int i;
   public MyTask(int i) {
     this.i = i;
   }

@Override
   public void run() {
     System.out.println(i + "dddd" + DateTimeUtil.getDateTimeString("yyyy-MM-dd HH:mm:ss.SSS"));
     try {
       if (i == 0) {
         Thread.sleep(8000L);
       } else {
         Thread.sleep(13000L);
       }
     } catch (Exception e) {
       e.printStackTrace();
     }
   }
 }
}

结果:

1dddd2018-01-11 16:03:07.575
1dddd2018-01-11 16:03:20.601
1dddd2018-01-11 16:03:33.602
1dddd2018-01-11 16:03:46.603
1dddd2018-01-11 16:03:59.604
1dddd2018-01-11 16:04:12.606
1dddd2018-01-11 16:04:25.607
1dddd2018-01-11 16:04:38.608

来源:http://blog.csdn.net/hl_java/article/details/79035344

标签:java,timer,定时任务
0
投稿

猜你喜欢

  • Java判断所给年份是平年还是闰年

    2023-10-21 17:48:59
  • shiro之记住登录信息

    2023-03-06 18:39:13
  • SpringBoot yaml中的数组类型取值方式

    2022-10-14 20:05:36
  • Java使用DateFormatter格式化日期时间的方法示例

    2021-07-15 15:29:23
  • 浅谈HashMap中7种遍历方式的性能分析

    2022-02-10 05:39:15
  • spring循环注入异常问题的解决方案

    2021-06-29 02:21:18
  • JAVA演示阿里云图像识别API,印刷文字识别-营业执照识别

    2022-04-21 15:05:22
  • c#固定长度的随机字符串例子

    2021-10-24 06:11:10
  • Java Scala实现数据库增删查改操作详解

    2022-02-03 05:09:22
  • Android设计模式之单例模式详解

    2022-03-12 16:51:47
  • Java多线程案例之单例模式懒汉+饿汉+枚举

    2021-11-07 05:18:01
  • 一文掌握Spring的创建与使用

    2022-01-24 19:28:38
  • Android实现MVVM架构数据刷新详解流程

    2023-07-05 13:33:41
  • Java中lock和tryLock及lockInterruptibly的区别

    2023-05-27 11:33:56
  • Java抛出异常与自定义异常类应用示例

    2022-10-23 01:58:52
  • c#求范围内素数的示例分享(c#求素数)

    2022-07-09 22:20:10
  • Java对象不使用时赋值null的意义详解

    2023-11-25 01:46:20
  • 基于JAVA中Jersey处理Http协议中的Multipart的详解

    2021-06-15 13:43:57
  • Java中的阻塞队列详细介绍

    2023-12-14 15:00:49
  • implicit关键字做自定义类型隐式转换的方法

    2021-10-22 20:00:40
  • asp之家 软件编程 m.aspxhome.com