<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
java開發,多多少少會接觸到多執行緒的應用開發場景,博主之前做多執行緒的時候就兩種方式,一個是繼承Thread一個是實現Runnable介面,不過用的多的還是實現Runnable介面,因為實現Runnable介面可以做多執行緒資源共用!而java.util.concurrent.ScheduledExecutorService介面將大大簡化多執行緒應用的開發!也能輕鬆解決任務定時執行的問題!
做過微信開發的都知道,微信的token是有失效時間的,而且每天獲取token都是有限制的,不能每次需要的時候取一次,只能快過期的時候重新去取,這個時候我們就可以給取token的這個操作單獨開個執行緒,每次取完後執行緒休眠一段繼續去取,這樣就保證了token永遠都是有效的 !
同樣是微信開發中的問題,微信伺服器連我們伺服器的時候,必須五秒內響應結果,不然微信就直接提示使用者,該服務不可用了。而我們不可能所有的業務都能做到五秒內完成並響應微信伺服器。比如從微信伺服器上下載使用者提交的檔案儲存到我們自己的檔案伺服器上,(微信伺服器臨時儲存使用者檔案),檔案的上傳下載都是比較耗時的操作,我們肯定不能等檔案上傳完了在響應微信,所有得單獨開個執行緒還執行檔案的下載上傳操作
/** *指定delay時間後執行任務 * @param command 執行的執行緒任務 Runnable不能返回執行結果 * @param delay 指定某個時間後執行 * @param unit 指定時間單位 * @return */ public ScheduledFuture schedule(Runnable command, long delay, TimeUnit unit) { return null; } /** *指定delay時間後執行任務 * @param callable 執行的執行緒任務 Callable返回執行結果 * @param delay 指定某個時間後執行 * @param unit 指定時間單位 * @param * @return */ publicScheduledFutureschedule(Callablecallable, long delay, TimeUnit unit) { return null; } /** *等待initiaDelay時間後,每個period時間執行一次 * @param command * @param initialDelay * @param period * @param unit * @return */ public ScheduledFuture scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) { return null; } //scheduleWithFixedDelay和scheduleAtFixedRate差不多 public ScheduledFuture scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) { return null; }
/** * @author kl by 2016/5/14 * @boke www.kailing.pub */ public class Test { public static int count=0; public static void main(String[] args) { //初始化兩個線城池大小的任務排程服務 ScheduledExecutorService executorService= Executors.newScheduledThreadPool(2); //任務一:0秒後開始執行,之後每秒執行一次 final ScheduledFuture test1= executorService.scheduleAtFixedRate(new Runnable() { public void run() { System.out.println("任務一執行第"+(count++)+"次 "+Thread.currentThread()); } },0, 1,TimeUnit.SECONDS); //任務二:6秒後開始執行,並返回執行結果 final ScheduledFuture test2 = executorService.schedule(new Callable() { public Object call() { System.out.println("任務二執行,傳遞執行結果給任務三 "+Thread.currentThread()); return "任務二已執行完,請知曉!"; } },6,TimeUnit.SECONDS); //任務三:8秒後執行,列印任務二的結果,終止任務一 executorService.schedule(new Runnable() { public void run() { try { System.out.println(test2.get()); }catch (Exception e){ e.printStackTrace(); } System.out.println("任務三執行,任務一終止 "+Thread.currentThread()); test1.cancel(true); } },8,TimeUnit.SECONDS); System.out.println("我是最先執行的嗎?不一定,雖然我是主執行緒 "+Thread.currentThread()); } }
ps:因為任務三種涉及了任務二的執行結果,所以即使任務三的執行時間設定在任務二的執行前面,任務三也要等到任務二執行完後才能執行 ,這個可以修改執行時間自己測試測試,體會體會
以上就是java多執行緒開發ScheduledExecutorService簡化方式的詳細內容,更多關於java多執行緒開發ScheduledExecutorService簡化的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45