java 任务定时调度(定时器)
任务定时调度
通过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 任务定时调度(定时器)相关推荐
- java wait定时_java定时器的使用(Timer)
java定时器的使用(Timer) 1.在应用开发中,常常须要一些周期性的操作,比方每5分钟运行某一操作等. 对于这种操作最方便.高效的实现方式就是使用java.util.Timer工具类. priv ...
- Java实现定时调度的三种方法
1.Timer Timer myTimer = new Timer(); myTimer.schedule(new Worker(), 1000);//1秒后执行 // 2012-02- ...
- java quartz timer_Java 定时调度TimerQuartz
目录 三.Quartz 一.Java定时任务介绍 在Java中,用得比较多的有两种,一个是Timer,一个是Quartz: 其中Timer是这是jdk自带的类库,一般用来实现简单的定时调度,由一个后台 ...
- java的知识点34——任务定时调度(多线程)
任务定时调度(多线程) 通过Timer 和Timertask,可以定时启动某个线程 java.util.Timer :类似闹钟的功能,本身实现的就是一个线程 java.util.TimerTask: ...
- java定时调度main方法_java相关:Spring中实现定时调度的几种方法
java相关:Spring中实现定时调度的几种方法 发布于 2020-11-28| 复制链接 本篇文章主要介绍了Spring中实现定时调度示例,可以在无人值守的时候系统可以在某一时刻执行某些特定的功能 ...
- 【Java多线程】高级主题:定时调度、quartz、指令重排、volatile、ThreadLocal
定时调度 1000ms后执行 每隔500ms执行一次 package cn.hanquan.test;import java.util.Timer; import java.util.TimerTas ...
- java 定时调度_怎么编写一个定时调度java程序
目前有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz. 1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 i ...
- java 多线程——一个定时调度的例子
java 多线程 目录: Java 多线程--基础知识 Java 多线程 -- synchronized关键字 java 多线程--一个定时调度的例子 java 多线程--quartz 定时调度的例子 ...
- java集群调度_集群环境下定时调度的解决方案之Quartz集群
集群环境可能出现的问题 在上一篇博客我们介绍了如何在自己的项目中从无到有的添加了Quartz定时调度引擎,其实就是一个Quartz 和Spring的整合过程,很容易实现,但是我们现在企业中项目通常都是 ...
- 11.17定时调度(血干JAVA系类)
定时调度 11.17.1 Timer 类 11.17.2 TimerTask 类 11.17.3范例--定时操作 [例11.52]建立TimerTask的子类 [例11.53]建立测试类,进行任务调度 ...
最新文章
- 没学过python、但是还是有公司要-转行Python开发自学还是报班?老男孩全日制学习...
- 用 API 提取、写入指定网站的 Cookie - 回复 bangrj 的问题
- 地址栏中的问号有什么作用
- Record of redevelopment of website
- Java注解参数类型枚举值_EffectiveJava-5-枚举和注解
- dz论坛修改html编辑器,discuz二次开发更换百度ueditor编辑器
- Android RecyclerViewSwipeDismiss:水平、垂直方向的拖曳删除item
- 【Hive】字符串函数
- java扫码盒_[腾讯 TMQ] JAVA 代码覆盖率工具 JaCoCo-实践篇
- Mac MySQL重置Root密码
- android 动态壁纸 时钟,Android自定义动态壁纸开发(时钟)
- 三星s9刷android9,三星S9港版安卓9rom系统线刷包:TGY-G9600ZHU5CSG8-刷机之家
- python读取邮箱邮件_Python读取我的outlook邮箱并分析邮件
- DISC社交风格测试题--老虎 孔雀 考拉 猫头鹰
- 周志华----机器学习2
- 基于GAN的语音转换技术及语音合成TTS
- 三星s6经常信号无服务器,看看你中招了没?盘点三星S6 Edge六大常见问题
- 3D游戏编程与设计——粒子系统
- 使用 kubectl drain 从集群中移除节点
- GeoServer发布osm数据地图服务
热门文章
- App获取android分辨率,设计手机app界面时,常用的分辨率是多少
- 【PostgresSQL】对汉字按拼音排序
- http协议与tcp协议区别
- 伽罗华域(Galois Field,GF,有限域)乘法运算
- 无线鼠标显示是台式计算机,无线鼠标怎么连接台式电脑?无线鼠标连接台式机与笔记本操作方法...
- iOS开发图片合成,多张图片合成一张图片
- 十年,MongoDB从一片小绿叶长成一颗大树
- 互联网赚钱指南!我是如何零成本空手套白狼?
- html代码 通用代码,html5可以通用的几段代码 | 睿客网
- xx学院学员评优评奖管理系统