介绍
这期内容当中小编将会给大家带来有关使用ScheduledExecutorService怎么实现一个定时任务,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
示例代码
package com.effective.common.concurrent.execute; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; public class  Schedule { private static  DateFormat DateFormat =, new SimpleDateFormat (“yy-MM-dd  HH: mm: ss"); private static  DateFormat dayFormat =, new SimpleDateFormat (“yy-MM-dd"); private static  ScheduledExecutorService excutor =, Executors.newSingleThreadScheduledExecutor ();/* * ,,*,按指定频率周期执行某个任务,& lt; br> ,,*,初始化延迟0女士开始执行,每隔5 ms重新执行一次任务。 ,,*/public void  fixedRate () { excutor.scheduleAtFixedRate (new EchoServer(),,//执行线程 0,,//初始化延迟 5000年,,//两次开始的执行的最小时间间隔 TimeUnit.MILLISECONDS //计时单位 ); }/* * ,,*, ,,*/public void  fixDelay () { excutor.scheduleWithFixedDelay (new EchoServer()//执行线程, 0,,//初始化延迟 5000年,,//前一次执行结束到下一次执行开始的间隔时间 TimeUnit.MILLISECONDS); }/* * ,,*,每天晚8点上执行一次 ,,*/public void  dayOfDelay (String 时间){ ScheduledExecutorService executor =, Executors.newScheduledThreadPool (1); long oneDay =, 24, *, 60, *, 60, *, 1000; long initDelay =, getTimeMillis (“20:00:00"),安康;System.currentTimeMillis (); 时间=initDelay initDelay 祝辞,0,?,initDelay :, oneDay +, initDelay; executor.scheduleAtFixedRate (, ,,,,,,,new EchoServer (),, ,,,,,,,initDelay,, ,,,,,,,有一天,, ,,,,,,,TimeUnit.MILLISECONDS); }/* * ,,*,获取给定时间对应的毫秒数 ,,*,@param string “HH: mm: ss" ,,* @return ,,*/private static  long getTimeMillis (String 时间),{ try { Date currentDate =, dateFormat.parse (dayFormat.format (new 日期()),+,,,,,+时间); return currentDate.getTime (),; } catch (ParseException e), { e.printStackTrace (); } return 0; } public static  void main (String [], args) { Schedule Schedule =, new 安排(); schedule.fixedRate (); schedule.fixDelay (); } }
上述就是小编为大家分享的使用ScheduledExecutorService怎么实现一个定时任务了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。