scheduleatfixedrateTimer和ScheduledThreadPoolExecutor的区别

scheduleatfixedrate  时间:2021-05-30  阅读:()

怎么用java做个定时器,每个星期一中午十二点开始执行doXX这一动作?

String rule; if (args.length > 1) { rule = args[0]; } else { //每分钟都执行 rule = "0 * * * * ? *"; } 这个是每分钟执行的 你可以把正则表达式改了就行

怎样用java做个定时器,每个星期一中午12点整执行doXX这一动作。越详细越好.用监听哥跪谢!

主类: package tiwen4; import java.util.Calendar; import java.util.Timer; public class quartz { public static void main(String[] args) { try{ Calendar cal = Calendar.getInstance();//设置定时时间 cal.add(Calendar.DATE, 0);//表示从今天的12点开始跑起来,如果当前时间超过12点会马上跑一次,否则等12点再跑第一次 cal.set(Calendar.HOUR_OF_DAY, 12);//24小时制的,12就是中午12点 cal.set(Calendar.MINUTE, 0);//分 cal.set(Calendar.SECOND, 0);//秒 Timer processTimer = new Timer(); processTimer.scheduleAtFixedRate(new ProcessClass(), cal.getTime(), 86400000);//86400000是24小时,即24小时跑一次 }catch(Exception e){ e.printStackTrace(); }finally{ } } } 定时器调用的类--我在这里只是输出了一下~你也可以自己加函数: package tiwen4; import java.util.TimerTask; public class ProcessClass extends TimerTask { @Override public void run() { // TODO Auto-generated method stub System.out.println("输出了哈哈");// } } 我上面用的只是一种方式,其实定时方式有很多的linux和window都有自带的定时器,可以直接调用,也可以用上面所说的quartz包带的框架等等

Timer和ScheduledThreadPoolExecutor的区别

Timer的主要方法有: // 安排在指定的时间执行 void schedule(TimerTask task, Date time) // 安排在指定的时间开始以重复的延时执行 void schedule(TimerTask task, Date firstTime, long period) // 安排在指定的延迟后执行 void schedule(TimerTask task, long delay) // 安排在指定的延迟后开始以重复的延时执行 void schedule(TimerTask task, long delay, long period) // 安排在指定的时间开始以重复的速率执行 void scheduleAtFixedRate(TimerTask task, Date firstTime, long period) // 安排在指定的延迟后开始以重复的速率执行 void scheduleAtFixedRate(TimerTask task, long delay, long period) 注:重复的延时和重复的速率的区别在于,前者是在前一个任务的执行结束后间隔period时间再开始下一次执行;而scheduleAtFixedRate则是会尽量按照任务的初始时间来按照间隔period时间执行。

如果一次任务执行由于某些原因被延迟了,用schedule()调度的后续任务同样也会被延迟,而用scheduleAtFixedRate()则会快速的开始两次或者多次执行,是后续任务的执行时间能够赶上来。

ScheduledThreadPoolExecutor的主要方法: // 在指定的延迟后执行 <V>ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit) // 在指定的延迟后执行 ScheduledFuture<?> schedule(mand, long delay, TimeUnit unit) // 在指定的延迟后以固定速率执行(类似Timer.scheduleAtFixedRate()) ScheduledFuture<?> scheduleAtFixedRate(mand, long initialDelay, long period, TimeUnit unit) // 在指定的延迟后以固定间隔执行(类似Timer.schedule()) ScheduledFuture<?> scheduleWithFixedDelay(mand, long initialDelay, long delay, TimeUnit unit) 比较: ·Timer对调度的支持是基于绝对时间的,因此任务对系统时间的改变是敏感的;而ScheduledThreadPoolExecutor支持相对时间。

·Timer使用单线程方式来执行所有的TimerTask,如果某个TimerTask很耗时则会影响到其他TimerTask的执行;而ScheduledThreadPoolExecutor则可以构造一个固定大小的线程池来执行任务。

·Timer不会捕获由TimerTask抛出的未检查异常,故当有异常抛出时,Timer会终止,导致未执行完的TimerTask不再执行,新的TimerTask也不能被调度;ScheduledThreadPoolExecutor对这个问题进行了妥善的处理,不会影响其他任务的执行。

10gbiz七月活动首月半价$2.36/月: 香港/洛杉矶CN2 GIA VPS

10gbiz怎么样?10gbiz 美国万兆带宽供应商,主打美国直连大带宽,真实硬防。除美国外还提供线路非常优质的香港、日本等数据中心可供选择,全部机房均支持增加独立硬防。洛杉矶特色线路去程三网直连(电信、联通、移动)回程CN2 GIA优化,全天低延迟。中国大陆访问质量优秀,最多可增加至600G硬防。香港七星级网络,去程回程均为电信CN2 GIA+联通+移动,大陆访问相较其他香港GIA线路平均速度更...

TTcloud(月$70)E3-1270V3 8GB内存 10Mbps带宽 ,日本独立服务器

关于TTCLOUD服务商在今年初的时候有介绍过一次,而且对于他们家的美国圣何塞服务器有过简单的测评,这个服务商主要是提供独立服务器业务的。目前托管硬件已经达到5000台服务器或节点,主要经营圣何塞,洛杉矶以及日本东京三个地区的数据中心业务。这次看到商家有推出了新上架的日本独立服务器促销活动,价格 $70/月起,季付送10Mbps带宽。也可以跟进客户的需求进行各种DIY定制。内存CPU硬盘流量带宽价...

Asiayun:枣庄电信Asiayun美国Cera葵湾VPSvps月付,美国CERA VPS月付26元/年

亚洲云Asiayun怎么样?亚洲云成立于2021年,隶属于上海玥悠悠云计算有限公司(Yyyisp),是一家新国人IDC商家,且正规持证IDC/ISP/CDN,商家主要提供数据中心基础服务、互联网业务解决方案,及专属服务器租用、云服务器、云虚拟主机、专属服务器托管、带宽租用等产品和服务。Asiayun提供源自大陆、香港、韩国和美国等地骨干级机房优质资源,包括BGP国际多线网络,CN2点对点直连带宽以...

scheduleatfixedrate为你推荐
腾讯举报中心怎么通过腾讯反诈骗中心举报QQHoneypotfeedback 歌词翻译知识分享平台微信看到一些文章,可以分享到知识付费的平台吗?怎么操作呀?chrome系统Chrome操作系统是什么样的系统?virusscan已安全McAfee VirusScan 10.0 windows 还有安全报警数据监测运动手表的数据监测都准确吗?腾讯公告腾讯出什么事了 所有QQ用户空间农场什么的都打不开 有的连空间都进不去 又受攻击了?12种颜色12种颜色都是代表什么12种颜色12种颜色的英语怎么写,用中文怎么读12种颜色水粉颜料调色过程十二种颜色
网站空间租用 免费cn域名注册 工信部域名备案系统 google镜像 香港bgp机房 sub-process godaddy优惠券 lamp配置 免费smtp服务器 魔兽世界台湾服务器 嘉洲服务器 dux linux空间 上海服务器 多线空间 网页提速 免费ftp 秒杀品 lamp什么意思 金主 更多