国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java多線程學習-java.util.concurrent詳解(三)ScheduledThreadPoolExecutor

2019-11-11 06:47:07
字體:
來源:轉載
供稿:網(wǎng)友

java多線程學習-java.util.concurrent詳解(三)ScheduledThreadPoolExecutor

6. ScheduledThreadPoolExecutor     我們先來學習一下JDK1.5 API中關于這個類的詳細介紹:     "可另行安排在給定的延遲后運行命令,或者定期執(zhí)行命令。需要多個輔助線程時,或者要求 ThreadPoolExecutor 具有額外的靈活性或功能時,此類要優(yōu)于 Timer。     一旦啟用已延遲的任務就執(zhí)行它,但是有關何時啟用,啟用后何時執(zhí)行則沒有任何實時保證。按照提交的先進先出 (FIFO) 順序來啟用那些被安排在同一執(zhí)行時間的任務。     雖然此類繼承自 ThreadPoolExecutor,但是幾個繼承的調整方法對此類并無作用。特別是,因為它作為一個使用 corePoolSize 線程和一個無界隊列的固定大小的池,所以調整 maximumPoolSize 沒有什么效果。"     在JDK1.5之前,我們關于定時/周期操作都是通過Timer來實現(xiàn)的。但是Timer有以下幾種危險[JCip] a. Timer是基于絕對時間的。容易受系統(tǒng)時鐘的影響。 b. Timer只新建了一個線程來執(zhí)行所有的TimeTask。所有TimeTask可能會相關影響 c. Timer不會捕獲TimerTask的異常,只是簡單地停止。這樣勢必會影響其他TimeTask的執(zhí)行。     如果你是使用JDK1.5以上版本,建議用ScheduledThreadPoolExecutor代替Timer。它基本上解決了上述問題。它采用相對時間,用線程池來執(zhí)行TimerTask,會出來TimerTask異常。     下面通過一個簡單的實例來闡述ScheduledThreadPoolExecutor的使用。        我們定期讓定時器拋異常     我們定期從控制臺打印系統(tǒng)時間 代碼如下(參考了網(wǎng)上的一些代碼,在此表示感謝) 

import java.util.concurrent.ScheduledThreadPoolExecutor;  import java.util.concurrent.TimeUnit;      public class TestScheduledThreadPoolExecutor {            public static void main(String[] args) {          ScheduledThreadPoolExecutor exec=new ScheduledThreadPoolExecutor(1);                    exec.scheduleAtFixedRate(new Runnable(){//每隔一段時間就觸發(fā)異常              @Override              public void run() {                  throw new RuntimeException();              }}, 1000, 5000, TimeUnit.MILLISECONDS);                    exec.scheduleAtFixedRate(new Runnable(){//每隔一段時間打印系統(tǒng)時間,證明兩者是互不影響的              @Override              public void run() {                  System.out.PRintln(System.nanoTime());              }}, 1000, 2000, TimeUnit.MILLISECONDS);      }    }  總結:是時候把你的定時器換成 ScheduledThreadPoolExecutor了 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 会同县| 津南区| 南投县| 潜山县| 玉屏| 库车县| 灯塔市| 喀喇| 宝应县| 大连市| 诸城市| 姚安县| 华蓥市| 利津县| 韶山市| 茌平县| 高安市| 平遥县| 琼结县| 舒城县| 河池市| 南京市| 湛江市| 忻州市| 肇州县| 仪征市| 五大连池市| 剑河县| 新兴县| 蒙自县| 泸定县| 北碚区| 延长县| 克东县| 平遥县| 金阳县| 昌都县| 共和县| 龙胜| 德令哈市| 南宫市|