java定时器

作者: Sunshine__7b8f | 来源:发表于2020-10-14 09:40 被阅读0次

java定时器

什么是Java定时器?
Java 定时器就是在给定的间隔时间执行自己的任务; Java实现定时器有以下几种:

通过Timer来实现定时任务

Timer 是来自 java.util.Timer

指定时间执行任务

 /**
  * @author spp
  * @date 2020-10-14 09:04
  **/
 public class TimerTest {
     public static void main(String[] args) {
         Timer timer = new Timer();
         timer.schedule(new TimerTask() {
             public void run() {
                 System.out.println("任务执行:" + System.currentTimeMillis());
             }
         }, 5000);
         System.out.println("任务开始:"+System.currentTimeMillis());

         //取消任务
         //timer.cancel();
     }
 }

结果

延后执行,随后以固定时间执行任务

 /**
  * @author spp
  * @date 2020-10-14 09:04
  **/
 public class TimerTest {
     public static void main(String[] args) {
         Timer timer = new Timer();
         //同scheduleAtFixedRate
         timer.schedule(new TimerTask() {
             public void run() {
                 System.out.println("任务执行:" + System.currentTimeMillis());
             }
         }, 5000,1000); //延迟5秒执行,随后每一秒执行一次
         System.out.println("任务开始:"+System.currentTimeMillis());

         //取消任务
         //timer.cancel();
     }
 }

结果

 任务开始:1602638067502
 任务执行:1602638072502
 任务执行:1602638073502
 任务执行:1602638074503
 任务执行:1602638075503
 任务执行:1602638076503
 任务执行:1602638077503

通过线程池ScheduledExecutorService

指定时间执行任务

 public static void main(String[] args) {
     //通过线程池ScheduledExecutorService
     ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
     scheduledExecutorService.schedule(()->{
         System.out.println("任务执行:" + System.currentTimeMillis());
     },1000, TimeUnit.MILLISECONDS); //参数说明:第一个执行的任务;第二个推迟的时间;第三个时间单位
     System.out.println("任务开始:"+System.currentTimeMillis());
 }

结果

 任务开始:1602638536832
 任务执行:1602638537833

执行固定定时任务

 public static void main(String[] args) {
     //通过线程池ScheduledExecutorService
     ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
     scheduledExecutorService.scheduleWithFixedDelay(()->{
         System.out.println("任务执行:" + System.currentTimeMillis());
     },2000, 1000,TimeUnit.MILLISECONDS); //参数说明:第一个执行的任务;第二个首次执行推迟的时间;第三个随后执行的推迟时间;第四个时间单位
     System.out.println("任务开始:"+System.currentTimeMillis());
 }

结果

 任务开始:1602638655640
 任务执行:1602638657641
 任务执行:1602638658643
 任务执行:1602638659645

定时器框架

  • Spring Task
  • QuartZ

有的时候Java代码定时任务也会让Linux上执行,也就是 Linux Cron

转自:

个人博客|程序猿首先森的个人博客​sppxpp.cn

相关文章

  • java定时器

    java定时器 什么是Java定时器?Java 定时器就是在给定的间隔时间执行自己的任务; Java实现定时器有以...

  • java中的定时器

    1、java中普通定时任务 Timer定时器 ScheduledThreadPoolExecutor 定时器 Ti...

  • 定时器(Quartz) [kwɔːts]

    Quartz定时器就是对java中Timer定时器的封装,支持Cron表达式定时 使用步骤: 1.定义任务类(指定...

  • JAVA实现定时任务的几种方式

    JAVA实现定时任务的几种方式 @(JAVA)[spring|quartz|定时器]近期项目开发中需要动态的添加定...

  • 35 定时器

    问题: 定时器技术有哪些? 答案: 前端当中:(1)setinterval(2)settimeout java当中...

  • java开发常用的定时器

    java开发常用的定时器 参考[http://www.javaboy.org/2019/0418/springbo...

  • java定时器

    定时器是java很常用的一个功能,最近写项目时常用,在此记录下常用的几种方法,以备复习之用。

  • java 定时器

    http://blog.csdn.net/bingLoVezi/article/details/15905675 ...

  • Java 定时器

    Java 定时器 1. 概述 Timer 可以按计划执行重复的任务或者定时执行指定任务,这是因为 Timer 内部...

  • Java 定时器

    Timer 缺陷 不支持多线程并发 任务抛出异常会停止所有任务的执行 Quartz Quartz 是一个完全由 J...

网友评论

    本文标题:java定时器

    本文链接:https://www.haomeiwen.com/subject/cgyipktx.html