阜阳专业网站建设区块链网站开发

diannao/2026/1/16 23:56:49/文章来源:
阜阳专业网站建设,区块链网站开发,计算机应用技术毕业设计,竣工验收全国公示平台本文列举常见的java定时任务实现方式#xff0c;并做一定比较。1. 循环内部sleep实现周期执行创建一个thread#xff0c;run() while循环里sleep()来实现周期性执行; 简单粗暴#xff0c;作为一个初学者很容易想到。public class Task1 {public static void main(String[] a…本文列举常见的java定时任务实现方式并做一定比较。1. 循环内部sleep实现周期执行创建一个threadrun() while循环里sleep()来实现周期性执行; 简单粗暴作为一个初学者很容易想到。public class Task1 {public static void main(String[] args) {// run in a secondfinal long timeInterval 1000;Runnable runnable new Runnable() {public void run() {while (true) {System.out.println(Hello !!);// 使用线程休眠来实现周期执行,try {Thread.sleep(timeInterval);} catch (InterruptedException e) {e.printStackTrace();}}}};Thread thread new Thread(runnable);thread.start();}}2. 使用Timer类调度TimerTask任务改进当启动和去取消任务时可以控制; 第一次执行任务时可以指定你想要的delay时间不足Timer的调度是基于绝对时间的所以当系统时间改变时会影响Timer。Timer只有一个工作线程所以当一个任务执行时间很长的时候会影响后续任务的调度。而ScheduledThreadPoolExecutor通过线程池的方式配置更灵活。如果任务抛出了一个未检查的异常将会导致Timer的工作线程被终止使Timer无法在继续运行。import java.util.Timer;import java.util.TimerTask;public class HelperTest {public static void main(String[] args) {// 具体任务。TimerTask task new TimerTask() {Overridepublic void run() {// task to run goes hereSystem.out.println(Hello !!!);}};// Timer类可以调度任务。 Timer实例可以调度多任务它是线程安全的。Timer timer new Timer();long delay 0;long intevalPeriod 1 * 1000;// schedules the task to be run in an intervaltimer.scheduleAtFixedRate(task, delay, intevalPeriod);}}3. 使用j.u.c.ScheduledExecutorService定时任务接口相比于Timer的单线程它是通过线程池的方式来执行任务的可以灵活的设定第一次执行任务delay时间提供了良好的约定以便设定执行的时间间隔import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;public class Task3 {public static void main(String[] args) {ScheduledExecutorService service new ScheduledThreadPoolExecutor(1);// 初始化延迟0ms开始执行每隔200ms重新执行一次任务。ScheduledExecutorService pool new ScheduledThreadPoolExecutor(1);pool.scheduleAtFixedRate(new Runnable() {Overridepublic void run() {// task to run goes hereSystem.out.println(Hello !);}}, 0, 200L, TimeUnit.MILLISECONDS);}实现类使用的是ScheduledThreadPoolExecutor。该类继承自ThreadPoolExecutor read more阻塞队列使用的是DelayedWorkQueue是ScheduledThreadPoolExecutor的内部类。ScheduledExecutorService接口方法说明其中scheduleAtFixedRate和scheduleWithFixedDelay在实现定时程序时比较方便。scheduleAtFixedRate(runnable, 0, 200L, TimeUnit.MILLISECONDS) 按指定周期执行某个任务初始化延迟0ms开始执行每隔200ms重新执行一次任务。scheduleWithFixedDelay(runnable, 0, 200L, TimeUnit.MILLISECONDS) 按指定间隔执行某个任务初始化时延时0ms开始执行下次执行时间是(本次执行结束 延迟200ms)后开始执行。schedule(Runnable command, long delay, TimeUnit unit) 在delay延时后执行一次性任务备注对于scheduleAtFixedRate实际上如果当前线程阻塞执行时间t 设置的间隔时间period下次是在t时间后执行并非period时间后立即开始。ScheduledExecutorService的spring配置 spring.xml xxx.javaAutowiredQualifier(gkHeartBeatScheduler)ScheduledExecutorService scheduledExecutorService;scheduledExecutorService.scheduleAtFixedRate(new Runnable() {Overridepublic void run() {System.out.println(do sth);}}, 1l, 2l, TimeUnit.SECONDS);spring ScheduledExecutorFactoryBean内部同样使用的ScheduledThreadPoolExecutor并对其做了包装处理。public class ScheduledExecutorFactoryBean extends ExecutorConfigurationSupport implements FactoryBean4. Sheduled注解方式Sheduled内部也使用了ScheduledThreadPoolExecutor。具体源代码可参见spring-context包中的ScheduledAnnotationBeanPostProcessor。用法就很简单了举例pom文件引入spring-context依赖使用注解方式配置定时任务即可import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;ComponentEnableSchedulingpublic class ScheduledAnnotationDemo {// Scheduled和触发器元素一起添加到方法上.Scheduled(fixedDelay5000)public void doSomething() {System.out.println(like scheduleWithFixedDelay);}Scheduled(fixedRate5000)public void doSomething() {System.out.println(like scheduleAtFixedRate);}// fixed-delay、fixed-rate任务都可以设置初始delay。Scheduled(initialDelay1000, fixedRate5000)public void doSomething() {// something that should execute periodically}// 也支持cron表达式Scheduled(cron 0/5 * * * * ?)public void doSomething() {// something that should execute on weekdays onlySystem.out.println(5s执行一次);}//cron举例:(秒 - 分 - 时 - 日 - 月- 星期)// */5 * * * * ? 每隔5秒执行一次// 0 */1 * * * ? 每隔1分钟执行一次// 0 0 1 * * ? 每天1点执行一次// 0 0 1 1 * ? 每月1号1点执行一次// 0 0 1 L * ? 每月最后一天1点执行一次// 0 0 1 ? * L 每周星期天1点执行一次}上面使用EnableScheduling的方式启动定时任务等价于在spring xml中配置元素。5. 开源任务调度框架QuartzQuartz , 功能强大的任务调度库。适用于具有更复杂调度要求的场景。提供了对持久化任务调度信息、事务、分布式的支持。与spring无缝对接。6. 小结使用ScheduledThreadPoolExecutor完成简单定时任务是比较理想和常用的实现方式。书写时更容易理解其过程实现。也可以用Sheduled注解的形式更加轻量化看起来更简洁。对复杂的任务调度可以使用Quartz框架。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91252.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五泉山网页设计宣传网站制作兰州优化定制

2019独角兽企业重金招聘Python工程师标准>>> Java中接口、抽象类与内部类学习 接口与内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 抽象类和抽象方法 抽象方法:仅有声明而没有方法体。 抽象类:包含一个或多个抽象方法的类&am…

网站建设合同表(书)vps如何做网站步骤

这篇文章将介绍如何使用Guava EventBus将更改发布到Java 7 WatchService检测到的目录或子目录中。 Guava EventBus是向应用程序添加发布/订阅通信的好方法。 Java 7 java.nio.file软件包中新增的WatchService用于监视目录中的更改。 由于EventBus和WatchService已在以前的文章中…

网站设置什么意思360建筑网一级消防

本文讨论了领导者在沟通过程中如何避免成为传声筒,通过筛选、处理和总结信息,在向上、向下沟通时保持相关性和真实性,提高沟通效率和效果。原文: The Dumbest Mistake Leaders Make in Communication 中层管理者作为高层领导、下属团队和其他…

网站建设活动广告网站建设 工作建议

我们知道,只要在一个Java类上加上Component、Service、Controller等注解,就可以被加载到Spring容器中,除了以上方式,加了Bean和Import好像也可以将对象添加到Spring容器中,究竟Spring是如何实现这些功能的呢&#xff1…

东莞外贸网站设计网页设计入门教学视频

一、python介绍python的创始人为吉多・范罗苏姆(Guido van Rossum)目前python主要应用领域:・云计算・WEB开发・科学运算、人工智能・系统运维・金融:量化交易,金融分析等,作为动态语言的python,语言结构清晰简单&…

绍兴网站推广福永网站建设公司

背景互联网时代的数据重要性不言而喻,任何数据的丢失都会给企事业单位、政府机关等造成无法计算和无法弥补的损失,尤其随着云计算和大数据时代的到来,数据中心的规模日益增大,环境更加复杂,云上客户群体越来越庞大&…

国外做储物柜的网站wordpress功能小工具栏

落地灯对于上班族、学生党来说真的很友好,能够提供贴合眼睛用光舒适的光度,使这些日常长时间用眼的人能够减少不良光线对眼睛造成的影响,从而科学健康的用眼! 市面上的落地灯产品越来越多,琳琅满目的产品让不少刚接触落…

环保设备网站建设模板舆情网站直接打开怎么弄

在最后的社区主题演讲后,我前往希尔顿金门大桥3/4/5观看了维克多巴生 ( Viktor Klang )的( Typesafe )“上,下,外:Akka”演讲。 巴生(Klang)是Akka的技术主管…

烟台网站制作工具什么样的网站好优化

在很多python脚本中在最后的部分会执行一个判断语句if __name__ "__main__:",之后还可能会有一些执行语句。那添加这个判断的目的何在? 在python编译器读取源文件的时候会执行它找到的所有代码,而在执行之前会根据当前运行的模块是…

织梦搬家 网站空白网站建设的平台分析

save和saveOrUpdate之间的区别是什么或save和persist之间的区别是任何Hibernate面试中常见的面试问题,就像Hibernate中get和load方法之间的区别一样。 Hibernate Session类提供了几种通过save , saveOrUpdate和persist等方法将对象保存到数据库中的方法。…

网站建设核心点tp框架做餐饮网站

ConfigurableListableBeanFactory 提供bean definition的解析,注册功能,再对单例来个预加载(解决循环依赖问题). 貌似我们一般开发就会直接定义这么个接口了事.而不是像Spring这样先根据使用情况细分那么多,到这边再合并 ConfigurableListableBeanFactory具体: 1、…

做公司网站的费用计入什么科目wordpress图片添加音乐

泽宇对自己的研究方向也就是知识图谱嵌入(KG Embedding)技术进行了总结,并制作了一套slides,力求让大家只看slides就可以理解并掌握知识图谱嵌入的相关知识和最新研究情况,包括知识图谱嵌入的基本概念、方法分类和经典…

给公司建立网站不可以做到的网络架构图怎么画

目录 0 引言1 函数指针模拟多播委托 🙋‍♂️ 作者:海码007📜 专栏:UE虚幻引擎专栏💥 标题:【UE 委托】如何利用函数指针理解委托的基本原理❣️ 寄语:书到用时方恨少,事非经过不知难…

公司网站维护一般需要做什么大数据技术建设网站

共享指针是 C 中一种智能指针,用于管理动态内存。它可以有效防止内存泄漏和悬空指针问题。在实际项目中,共享指针有以下几种常见的用法: 1. 管理对象的生命周期 共享指针可以用来管理对象的生命周期。当最后一个共享指针指向的对象时&#…

设计师网站 pins东营刚刚发生

目录 1.软件与平面基础 2.互联网插画 3.互联网运营设计 4.C4D三维制作 5.UI设计基础

新乡模板建站WordPress输出当前网址

一个程序被加载到内存当中运作,那么在内存内的那个数据就被称为进程(process)。 进程是操作系统上非常重要的概念,所有系统上面跑的数据都会以进程的型态存在。 进程 在 Linux底下所有的指令与能够进行的动作都与权限有关,而系统如何判定权…

网站建设控制面板怎么设置网页图片下载不了怎么办

还不错… 生成后一般放在imgs的下面. link:favicon tab 导入链接http://www.faviconico.org/

小型影视网站源码制作软件下载

模糊集基本理论 典型隶属函数 如前所述, 构造恰当的隶属函数是模糊集理论应用的基础。一种基本的构造隶属函数的方法是“参考函数法”, 即参考一些典型的隶属函数, 通过选择适当的参数, 或通过拟合、整合、实验等手段得到需要的隶属函数。 下面介绍典型隶属函数(最早由法国学者…

全国 做网站的企业网站分析报告范文

写在开头:本章是Hive教程第六部分,着重于归纳SQL编写。文章内容输出来源:拉勾教育大数据高薪训练营。本章将介绍Hive中常见的面试题和自己的解答思路,以供大家训练和记忆。SQL面试题1、求连续7天登录的用户— 数据。uid dt status…

做企业网站需要注意哪些网页制作工具有哪些

文章目录机器学习定义说人话例子专家系统 定义好, 应招,速度快机器学习 实验 奖惩 调参对象任务 TASK T一个或多个经验 EXPERIENCE性能PERFORMANCE类比人类学习监督学习半监督学习无监督学习增强学习可解决问题不可解决问题举例f(x&#xff0…