- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- Java中如何實(shí)現ScheduledExecutorService定時(shí)任務(wù)
這篇文章主要為大家展示了“Java中如何實(shí)現ScheduledExecutorService定時(shí)任務(wù)”,內容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習一下“Java中如何實(shí)現ScheduledExecutorService定時(shí)任務(wù)”這篇文章吧。
ScheduledExecutorService,是基于線(xiàn)程池設計的定時(shí)任務(wù)類(lèi),每個(gè)調度任務(wù)都會(huì )分配到線(xiàn)程池中的一個(gè)線(xiàn)程去執行,也就是說(shuō),任務(wù)是并發(fā)執行,互不影響。
需要注意,只有當調度任務(wù)來(lái)的時(shí)候,ScheduledExecutorService才會(huì )真正啟動(dòng)一個(gè)線(xiàn)程,其余時(shí)間ScheduledExecutorService都是出于輪詢(xún)任務(wù)的狀態(tài)。
class MyScheduledExecutor implements Runnable { private String jobName; MyScheduledExecutor() { } MyScheduledExecutor(String jobName) { this.jobName = jobName; } @Override public void run() { System.out.println(jobName + " is running"); } }
public static void main(String[] args) { ScheduledExecutorService service = Executors.newScheduledThreadPool(10); long initialDelay = 1; long period = 1; // 從現在開(kāi)始1秒鐘之后,每隔1秒鐘執行一次job1 service.scheduleAtFixedRate(new MyScheduledExecutor("job1"), initialDelay, period, TimeUnit.SECONDS); // 從現在開(kāi)始2秒鐘之后,每隔2秒鐘執行一次job2 service.scheduleWithFixedDelay(new MyScheduledExecutor("job2"), initialDelay, period, TimeUnit.SECONDS); }
ScheduledExecutorService 中兩種最常用的調度方法 ScheduleAtFixedRate 和 ScheduleWithFixedDelay。ScheduleAtFixedRate 每次執行時(shí)間為上一次任務(wù)開(kāi)始起向后推一個(gè)時(shí)間間隔,即每次執行時(shí)間為 :initialDelay, initialDelay+period, initialDelay+2*period, …;ScheduleWithFixedDelay 每次執行時(shí)間為上一次任務(wù)結束起向后推一個(gè)時(shí)間間隔,即每次執行時(shí)間為:initialDelay, initialDelay+executeTime+delay, initialDelay+2*executeTime+2*delay。由此可見(jiàn),ScheduleAtFixedRate 是基于固定時(shí)間間隔進(jìn)行任務(wù)調度,ScheduleWithFixedDelay 取決于每次任務(wù)執行的時(shí)間長(cháng)短,是基于不固定時(shí)間間隔進(jìn)行任務(wù)調度。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站