一篇文章讲明白java的常用定时任务的几种方式

简介: 一篇文章讲明白java的常用定时任务的几种方式

Java基本的定时任务,一般有这几种方式:

一、Timer

1 public class Timer{

2 static int index=0;

3 public static void main(String【】 args){

4 Timer timer=new Timer();

5 timer.schedule(new TimerTask() {

6 @Override

7 public void run() {

8 index++;

9 System.out.println("你好");

10 if (index>100){

11 timer.cancel();

12 }

13 }

14 },0,1000);

15 }

16 }

通过往Timer提交一个TimerTask的任务,同时指定多久后开始执行以及执行周期,就可以周期执行任务。

二、Threa线程

1 public class ThreadTest implements Runnable{

2 static int i=0;

3 @Override

4 public void run() {

5 Boolean t=true;

6 while (t){

7 i++;

8 try {

9 if (i<100) {

10 Thread.sleep(1000);

11 System.out.println("你好");

12 }else{

13 t=false;

14 }

15 } catch (InterruptedException e) {

16 e.printStackTrace();

17 }

18 }

19 }

20 public static void main(String【】 args){

21 ThreadTest test=new ThreadTest();

22 Thread t=new Thread(test);

23 t.start();

24 }

通过创建一个线程,让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果。

三、Sping的@Scheduled注解定时

1 @Scheduled(fixedDelay = 5000)

2 public void note(){

3 System.out.println("你好");

4 }//代码效果参考:http://www.ezhiqi.com/bx/art_4981.html

注解中指定的属性名称是fixedRate,是指以固定频率(周期)执行任务,这个周期是以上一个任务开始时间为基准。

1 @Scheduled(cron="0 0 8 ?")

2 public void note(){

3 System.out.println("你好");

4 }

注解中指定的属性名称是cron,指定时调用,cron的参数依次指:

秒(0~59)

  分钟(0~59)

  小时(0~23)

  天(月)(0~31,但是你需要考虑你月的天数)

  月(0~11)

  天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)

  年份(1970-2099)

四、分布式定时框架LTS

 LTS 源码地址:

实例源码:4种demo包括纯java、xml配置、注解配置、springboot

LTS 代码例子地址:

相关文章
|
8月前
|
存储 Java 数据库
从源码全面解析Java 线程池的来龙去脉
从源码全面解析Java 线程池的来龙去脉
|
7月前
|
XML Java 数据格式
一篇文章讲明白java的常用定时任务的几种方式
一篇文章讲明白java的常用定时任务的几种方式
53 0
|
8月前
|
安全 Java API
【JAVA】有关时间的操作在编程中如何实现?
【JAVA】有关时间的操作在编程中如何实现?
69 0
|
缓存 监控 前端开发
JVM学习日志(三) Java代码执行流程
简述 Java代码执行流程
114 0
JVM学习日志(三) Java代码执行流程
【java常见的面试题】项目中异常是怎么控制的 ?
Java基础的面试题【SpringBoot&SpringCloud篇】
116 0
|
Java 缓存 前端开发
Java 如何实现动态脚本?
在平台级的 Java 系统中,动态脚本技术是不可或缺的一环。本文分享了一种 Java 动态脚本实现方案,给出了其中的关键技术点,并就类重名问题、生命周期、安全问题等做出进一步讨论,欢迎同学们共同交流。
2710 0
Java 如何实现动态脚本?
|
Java
Java8 - 自定义实现体会CompletableFuture的原理
Java8 - 自定义实现体会CompletableFuture的原理
94 0
|
Java
Java8 - 自定义实现体会Future的原理
Java8 - 自定义实现体会Future的原理
77 0
|
NoSQL Java Shell
我用java写了个定时工具沾沾自喜,结果发现小丑竟是我自己!
我用java写了个定时工具沾沾自喜,结果发现小丑竟是我自己!
197 0
|
缓存 Java
Java 最常见的面试题:创建线程池有哪几种方式?
Java 最常见的面试题:创建线程池有哪几种方式?
164 0