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