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

相关文章
|
2月前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第17天】本文详细介绍了Java编程中Map的使用,涵盖Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的并发处理和性能优化技巧,适合初学者和进阶者学习。
53 3
|
4月前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(完结)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!(完结)
40 0
|
2月前
|
Java
用java搞定时任务,将hashmap里面的值存到文件里面去
本文介绍了如何使用Java的`Timer`和`TimerTask`类创建一个定时任务,将HashMap中的键值对写入到文本文件中,并提供了完整的示例代码。
38 1
用java搞定时任务,将hashmap里面的值存到文件里面去
|
2月前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第19天】本文介绍了Java编程中重要的数据结构——Map,通过问答形式讲解了Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的使用和性能优化技巧,适合初学者和进阶者学习。
56 4
|
2月前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
147 1
|
4月前
|
存储 前端开发 JavaScript
【前端学java】一篇文章带你精通java 中的数组(10)
【8月更文挑战第10天】一篇文章带你精通java 中的数组
17 3
【前端学java】一篇文章带你精通java 中的数组(10)
|
4月前
|
JavaScript 前端开发 Java
java高质量数据流概念讲解,保证一篇文章帮助你搞懂概念!
【8月更文挑战第11天】java高质量数据流概念讲解,保证一篇文章帮助你搞懂概念!
32 0
java高质量数据流概念讲解,保证一篇文章帮助你搞懂概念!
|
4月前
|
缓存 前端开发 JavaScript
一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
【8月更文挑战第11天】一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
39 0
一篇文章助你搞懂java中的线程概念!纯干货,快收藏!
|
4月前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(17)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!
35 0
【前端学java】java基础练习缺少项目?看这篇文章就够了!(17)
|
4月前
|
Java
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!
38 0
Java 新手入门:重载和重写傻傻分不清?一篇文章带你清晰理解!