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对这个问题进行了妥善的处理,不会影响其他任务的执行。

麻花云:3折优惠,香港CN2安徽麻花云香港安徽移动BGP云服务器(大带宽)

麻花云在7月特意为主机测评用户群定制了促销活动:香港宽频CN2云服务器、安徽移动云服务器(BGP网络,非单线,效果更好)、安徽移动独立服务器、安徽电信独立服务器,全部不限制流量,自带一个IPv4,默认5Gbps的DDoS防御。活动链接:https://www.mhyun.net/act/zjcp特价云服务器不限流量,自带一个IPv4,5Gbps防御香港宽频CN2全固态Ⅲ型 4核4G【KVM】内存:...

DMIT(8.72美元)日本国际线路KVM月付8折起,年付5折

DMIT.io是成立于2018年的一家国外主机商,提供VPS主机和独立服务器租用,数据中心包括中国香港、美国洛杉矶和日本等,其中日本VPS是新上的节点,基于KVM架构,国际线路,1Gbps带宽,同时提供月付循环8折优惠码,或者年付一次性5折优惠码,优惠后最低每月8.72美元或者首年65.4美元起,支持使用PayPal或者支付宝等付款方式。下面列出部分日本VPS主机配置信息,价格以月付为例。CPU:...

恒创新客(317元)香港云服务器 2M带宽 三网CN2线路直连

恒创科技也有暑期的活动,其中香港服务器也有一定折扣,当然是针对新用户的,如果我们还没有注册过或者可以有办法注册到新用户的,可以买他们家的香港服务器活动价格,2M带宽香港云服务器317元。对于一般用途还是够用的。 活动链接:恒创暑期活动爆款活动均是针对新用户的。1、云服务器仅限首次购买恒创科技产品的新用户。1 核 1G 实例规格,单个账户限购 1台;其他活动机型,单个账户限购 3 台(必须在一个订单...

scheduleatfixedrate为你推荐
决策树分析简述决策树方法的基本内涵Honeypot蜜罐系统毫无破绽吗?企业资源管理系统企业内部管理系统有哪些chrome系统谷歌Chrome OS可以用来做什么?网络审计网络安全审计系统的背景assemblyinfoLOL的 X、L、CS 是什么意思币众筹众筹平台开发哪家好什么是生态系统生态系统的结构是什么超级播放器推荐个好的视频播放器bt代理有人推荐我成为btbank代理人,这个没有什么风险?
美国域名 美国加州vps vps虚拟服务器 域名服务器上存放着internet主机的 草根过期域名 mach5 56折 eq2 大容量存储 论坛空间 php免费空间 商务主机 好看qq空间 速度云 域名接入 免费cdn 常州联通宽带 空间登录首页 美国凤凰城 华为云建站 更多