一篇文章讲明白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 代码例子地址:

相关文章
|
1天前
|
Java
一篇文章讲明白Java中内部类详解—匿名内部类
一篇文章讲明白Java中内部类详解—匿名内部类
|
1天前
|
Java
一篇文章讲明白Java中四舍五入
一篇文章讲明白Java中四舍五入
|
1天前
|
Java 编译器
一篇文章讲明白java键盘输入多种方法
一篇文章讲明白java键盘输入多种方法
|
4天前
|
缓存 NoSQL Java
Redis系列学习文章分享---第四篇(Redis快速入门之Java客户端--商户查询缓存+更新+双写一致+穿透+雪崩+击穿+工具封装)
Redis系列学习文章分享---第四篇(Redis快速入门之Java客户端--商户查询缓存+更新+双写一致+穿透+雪崩+击穿+工具封装)
9 0
|
4天前
|
存储 NoSQL Java
Redis系列学习文章分享---第三篇(Redis快速入门之Java客户端--短信登录+session+验证码+拦截器+登录刷新)
Redis系列学习文章分享---第三篇(Redis快速入门之Java客户端--短信登录+session+验证码+拦截器+登录刷新)
8 0
|
4天前
|
存储 NoSQL Java
Redis系列学习文章分享---第二篇(Redis快速入门之Java客户端--Jedis+连接池+SpringDataRedis+RedisTemplate+RedisSerializer+Hash)
Redis系列学习文章分享---第二篇(Redis快速入门之Java客户端--Jedis+连接池+SpringDataRedis+RedisTemplate+RedisSerializer+Hash)
8 0
|
4天前
|
XML 安全 Java
一篇文章讲明白JAVA常用的工具类
一篇文章讲明白JAVA常用的工具类
|
5天前
|
JSON Java 数据安全/隐私保护
一篇文章讲明白Java第三方支付接入案例(支付宝)
一篇文章讲明白Java第三方支付接入案例(支付宝)
|
5天前
|
存储 Dubbo Java
一篇文章讲明白Java的深拷贝和浅拷贝
一篇文章讲明白Java的深拷贝和浅拷贝
12 0
|
JavaScript 前端开发 Java