java 定时任务

1private ScheduledExecutorService scheduledExecutorService; 2scheduledExecutorService = Executors.newSingleThreadScheduledExecutor(); 3scheduledExecutorService.scheduleAtFixedRate(new Task(), 1, 4, TimeUnit.SECONDS);//4s一次 延迟1s task执行的一步任务 4scheduledExecutorService.shutdown();//停止任务

 new task 实现 runable接口;

Timer存在一些缺陷:

1,Timer对调度的支持是基于绝对时间,而不是相对时间的,由此任务对系统时钟的改变是敏感的;ScheduledThreadExecutor只支持相对时间。

2,如果TimerTask抛出未检查的异常,Timer将会产生无法预料的行为。Timer线程并不捕获异常,所以 TimerTask抛出的未检查的异常会终止timer线程。此时,已经被安排但尚未执行的TimerTask永远不会再执行了,新的任务也不能被调度了。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java目前可以通过以下几种方式进行定时任务

1、单机部署模式Timer:jdk中自带的一个定时调度类,可以简单的实现按某一频度进行任务执行。提供的功能比较单一,无法实现复杂的调度任务。ScheduledExecutorService:也是jdk自带的一个基于线程池设计的定时任务类。其每个调度任务都会分配到线程池中的一个线程执行,所以其任务是并发执行的,互不影响。

Java Scheduler ScheduledExecutorService ScheduledThreadPoolExecutor Example(ScheduledThreadPoolEx...

<divclass"entrycontent"itemprop"text"<!QuickAdsenseWordPressPlugin:http://quickadsense.com/<divstyle"float:none;margin:10px010px0;textalign:center;"<di

ScheduledExecutorService和timer的异同

先来个传统的Timer的例子:\java\viewplain(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fblog.csdn.net%2Fcages%2Farticle%2Fdetails%2F7300992%23"viewplain")copy(http

java 定时任务 - HelloWorld