任务定时调度

通过Timer和Timetask,我们可以实现定时启动某个线程。

java.util.Timer

在这种实现方式中,Timer类作用是类似闹钟的功能,也就是定时或者每隔一定时间触发一次线程。其实,Timer类本身实现的就是一个线程,只是这个线程是用来实现调用其它线程的。

java.util.TimerTask

TimerTask类是一个抽象类,该类实现了Runnable接口,所以该类具备多线程的能力。

在这种实现方式中,通过继承TimerTask使该类获得多线程的能力,将需要多线程执行的代码书写在run方法内部,然后通过Timer类启动线程的执行。

java.util.Timer的使用

public class TestTimer {public static void main(String[] args) {Timer t1 = new Timer();//定义计时器;MyTask task1 = new MyTask();//定义任务;t1.schedule(task1,3000);  //3秒后执行;//t1.schedule(task1,5000,1000);//5秒以后每隔1秒执行一次!//GregorianCalendar calendar1 = new GregorianCalendar(2010,0,5,14,36,57); //t1.schedule(task1,calendar1.getTime()); //指定时间定时执行;
    }
}class MyTask extends TimerTask {//自定义线程类继承TimerTask类;public void run() {for(int i=0;i<10;i++){System.out.println("任务1:"+i);}}
}

执行结果如图:

运行以上程序时,可以感觉到在输出之前有明显的延迟(大概就是3秒!)。还有几个方法,自己试试吧!

在实际使用时,一个Timer可以启动任意多个TimerTask实现的线程,但是多个线程之间会存在阻塞。所以如果多个线程之间需要完全独立的话,最好还是一个Timer启动一个TimerTask实现。

===========

@Scheduled注解

https://www.jianshu.com/p/1defb0f22ed1

Springboot整合异步定时任务

https://blog.csdn.net/qq_32447301/article/details/84668865

spring boot 自带的定时任务,时间表达式中代表周几的一些坑。。

https://blog.csdn.net/z1040141848/article/details/96973459

springboot 集成 quartz 动态实现定时任务

实际开发中,我们可以使用开源框架quanz,更加方便的实现任务定时调度。实际上,quanz底层原理就是我们这里介绍的内容。

https://blog.csdn.net/z291197968/article/details/82351471

转载于:https://www.cnblogs.com/zhzhlong/p/11434233.html

java 任务定时调度(定时器)相关推荐

  1. java wait定时_java定时器的使用(Timer)

    java定时器的使用(Timer) 1.在应用开发中,常常须要一些周期性的操作,比方每5分钟运行某一操作等. 对于这种操作最方便.高效的实现方式就是使用java.util.Timer工具类. priv ...

  2. Java实现定时调度的三种方法

    1.Timer Timer myTimer = new Timer(); myTimer.schedule(new Worker(), 1000);//1秒后执行   //      2012-02- ...

  3. java quartz timer_Java 定时调度TimerQuartz

    目录 三.Quartz 一.Java定时任务介绍 在Java中,用得比较多的有两种,一个是Timer,一个是Quartz: 其中Timer是这是jdk自带的类库,一般用来实现简单的定时调度,由一个后台 ...

  4. java的知识点34——任务定时调度(多线程)

    任务定时调度(多线程) 通过Timer 和Timertask,可以定时启动某个线程 java.util.Timer  :类似闹钟的功能,本身实现的就是一个线程 java.util.TimerTask: ...

  5. java定时调度main方法_java相关:Spring中实现定时调度的几种方法

    java相关:Spring中实现定时调度的几种方法 发布于 2020-11-28| 复制链接 本篇文章主要介绍了Spring中实现定时调度示例,可以在无人值守的时候系统可以在某一时刻执行某些特定的功能 ...

  6. 【Java多线程】高级主题:定时调度、quartz、指令重排、volatile、ThreadLocal

    定时调度 1000ms后执行 每隔500ms执行一次 package cn.hanquan.test;import java.util.Timer; import java.util.TimerTas ...

  7. java 定时调度_怎么编写一个定时调度java程序

    目前有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz. 1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 i ...

  8. java 多线程——一个定时调度的例子

    java 多线程 目录: Java 多线程--基础知识 Java 多线程 -- synchronized关键字 java 多线程--一个定时调度的例子 java 多线程--quartz 定时调度的例子 ...

  9. java集群调度_集群环境下定时调度的解决方案之Quartz集群

    集群环境可能出现的问题 在上一篇博客我们介绍了如何在自己的项目中从无到有的添加了Quartz定时调度引擎,其实就是一个Quartz 和Spring的整合过程,很容易实现,但是我们现在企业中项目通常都是 ...

  10. 11.17定时调度(血干JAVA系类)

    定时调度 11.17.1 Timer 类 11.17.2 TimerTask 类 11.17.3范例--定时操作 [例11.52]建立TimerTask的子类 [例11.53]建立测试类,进行任务调度 ...

最新文章

  1. 没学过python、但是还是有公司要-转行Python开发自学还是报班?老男孩全日制学习...
  2. 用 API 提取、写入指定网站的 Cookie - 回复 bangrj 的问题
  3. 地址栏中的问号有什么作用
  4. Record of redevelopment of website
  5. Java注解参数类型枚举值_EffectiveJava-5-枚举和注解
  6. dz论坛修改html编辑器,discuz二次开发更换百度ueditor编辑器
  7. Android RecyclerViewSwipeDismiss:水平、垂直方向的拖曳删除item
  8. 【Hive】字符串函数
  9. java扫码盒_[腾讯 TMQ] JAVA 代码覆盖率工具 JaCoCo-实践篇
  10. Mac MySQL重置Root密码
  11. android 动态壁纸 时钟,Android自定义动态壁纸开发(时钟)
  12. 三星s9刷android9,三星S9港版安卓9rom系统线刷包:TGY-G9600ZHU5CSG8-刷机之家
  13. python读取邮箱邮件_Python读取我的outlook邮箱并分析邮件
  14. DISC社交风格测试题--老虎 孔雀 考拉 猫头鹰
  15. 周志华----机器学习2
  16. 基于GAN的语音转换技术及语音合成TTS
  17. 三星s6经常信号无服务器,看看你中招了没?盘点三星S6 Edge六大常见问题
  18. 3D游戏编程与设计——粒子系统
  19. 使用 kubectl drain 从集群中移除节点
  20. GeoServer发布osm数据地图服务

热门文章

  1. App获取android分辨率,设计手机app界面时,常用的分辨率是多少
  2. 【PostgresSQL】对汉字按拼音排序
  3. http协议与tcp协议区别
  4. 伽罗华域(Galois Field,GF,有限域)乘法运算
  5. 无线鼠标显示是台式计算机,无线鼠标怎么连接台式电脑?无线鼠标连接台式机与笔记本操作方法...
  6. iOS开发图片合成,多张图片合成一张图片
  7. 十年,MongoDB从一片小绿叶长成一颗大树
  8. 互联网赚钱指南!我是如何零成本空手套白狼?
  9. html代码 通用代码,html5可以通用的几段代码 | 睿客网
  10. xx学院学员评优评奖管理系统