Java实现Timer的定时调度函数schedule的四种用法

作者:星辰_大海 时间:2022-08-14 04:49:01 

schedule的四种用法

schedule(task,time)

task-所安排的任务  time-执行任务的时间

作用:在时间等于或者超过time的时候执行且仅执行一次

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

public class MyTimerTask extends TimerTask {
   private Integer cout = 0;
   @Override
   public void run() {
       Calendar calendar = Calendar.getInstance();
       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
       System.out.println("Current Time:"+format.format(calendar.getTime()));//获取当前系统时间
       System.out.println("NO.1");
   }
   public static void main(String[] args) {
       MyTimerTask task = new MyTimerTask();
       Calendar calendar = Calendar.getInstance();
       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
       System.out.println(format.format(calendar.getTime()));
       calendar.add(Calendar.SECOND,3);//获取距离当前时间3秒后的时间
       Timer timer = new Timer();
       timer.schedule(task,calendar.getTime());

}
}

schedule(task,time,period)

task-所要安排执行的任务 time-首次执行任务的时间 period-执行一次task的时间间隔,单位毫秒

作用:时间等于或者超过time首次执行task,之后每隔period毫秒重复执行一次任务

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

public class MyTimerTask extends TimerTask {
   private Integer cout = 0;
   @Override
   public void run() {
       Calendar calendar = Calendar.getInstance();
       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
       System.out.println("Current Time:"+format.format(calendar.getTime()));//获取当前系统时间
       System.out.println("NO.1");
   }
   public static void main(String[] args) {
       MyTimerTask task = new MyTimerTask();
       Calendar calendar= Calendar.getInstance();
       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
       System.out.println(format.format(calendar.getTime()));
       calendar.add(Calendar.SECOND,3);//获取距离当前时间3秒后的时间
       Timer timer = new Timer();
      //timer.schedule(task,calendar.getTime());
       timer.schedule(task,calendar.getTime(),2000);
   }
}

schedule(task,delay)

task-所要安排的任务  delay-执行任务前的延迟时间,单位毫秒

作用:等待delay毫秒后执行仅执行一次task

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

public class MyTimerTask extends TimerTask {
   @Override
   public void run() {
       Calendar calendar = Calendar.getInstance();
       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
       System.out.println("Current Time:"+format.format(calendar.getTime()));//获取当前系统时间
       System.out.println("NO.1");
   }
   public static void main(String[] args) {
       MyTimerTask task = new MyTimerTask();
       Calendar calendar = Calendar.getInstance();
       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
       System.out.println(format.format(calendar.getTime()));
       //calendar.add(Calendar.SECOND,3);//获取距离当前时间3秒后的时间
       Timer timer = new Timer();
       //timer.schedule(task,calendar.getTime());
       //timer.schedule(task,calendar.getTime(),2000);
       timer.schedule(task,2000);
   }
}

schedule(task, delay,period)

作用:在等待delay毫秒后首次执行task,每隔period毫秒重复执行task

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

public class MyTimerTask extends TimerTask {
   @Override
   public void run() {
       Calendar calendar = Calendar.getInstance();
       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
       System.out.println("Current Time:"+format.format(calendar.getTime()));//获取当前系统时间
       System.out.println("NO.1");
   }
   public static void main(String[] args) {
       MyTimerTask task = new MyTimerTask();
       Calendar calendar = Calendar.getInstance();
       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
       System.out.println(format.format(calendar.getTime()));
       //calendar.add(Calendar.SECOND,3);//获取距离当前时间3秒后的时间
       Timer timer = new Timer();
       //timer.schedule(task,calendar.getTime());
       //timer.schedule(task,calendar.getTime(),2000);
       //timer.schedule(task,2000);
       timer.schedule(task,2000,3000);
   }
}

来源:https://blog.csdn.net/weixin_42103959/article/details/80432978

标签:Java,Timer,schedule
0
投稿

猜你喜欢

  • IDEA不编译除了.java之外的文件的解决办法(推荐)

    2023-09-16 15:50:44
  • C#对list列表进行随机排序的方法

    2021-10-31 20:00:17
  • Android悬浮窗屏蔽悬浮窗外部所有的点击事件的实例代码

    2022-11-13 17:09:47
  • Android Activity切换(跳转)时出现黑屏的解决方法 分享

    2022-10-25 15:41:07
  • 取消Android Studio项目与SVN关联的方法

    2022-09-14 11:48:45
  • spring cache注解@Cacheable缓存穿透详解

    2023-12-23 13:41:25
  • 使用maven的profile构建不同环境配置的方法

    2023-08-30 23:43:45
  • Android Retrofit框架的使用

    2023-10-05 13:24:21
  • SpringBoot整合mybatis常见问题(小结)

    2023-07-23 09:50:12
  • 快速解决设置Android 23.0以上版本对SD卡的读写权限无效的问题

    2021-08-26 09:31:43
  • Spring Boot如何使用Spring Security进行安全控制

    2022-03-26 03:59:41
  • 详解Java注解知识点

    2021-06-24 18:39:12
  • 详解Java编程中protected修饰符与static修饰符的作用

    2022-05-11 03:53:17
  • Java基本数据类型族谱与易错点梳理解析

    2021-08-18 10:20:27
  • java高并发ScheduledThreadPoolExecutor与Timer区别

    2023-08-11 03:08:29
  • Spring Boot中@ConditionalOnProperty的使用方法

    2021-11-27 09:07:33
  • Android支付宝支付的示例代码

    2022-06-20 02:32:49
  • Android系统添加自定义鼠标样式通过按键切换实例详解

    2022-09-26 21:07:45
  • mybatis-plus中lambdaQuery()与lambdaUpdate()比较常见的使用方法总结

    2023-11-24 22:43:04
  • 改进c# 代码的五个技巧(二)

    2023-01-09 08:57:56
  • asp之家 软件编程 m.aspxhome.com