黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 4種常見線程池

4種常見線程池

更新時間:2020-11-10 17:44:28 來源:動力節點 瀏覽2053次

線程池是一種多線程處理形式,處理過程中將任務添加到隊列,然后在創建線程后自動啟動這些任務。線程池在多線程任務中被廣泛運用,維護著多個線程運轉,等待著監督管理者分配可并發執行的任務。由此可見,線程池在多線程中扮演著舉足輕重的角色,發揮著其獨特的調配作用。本文就來向大家介紹4種常見線程池


1.newFixedThreadPool

public static ExecutorService newFixedThreadPool(int var0) {

return new ThreadPoolExecutor(var0, var0, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue());

}

public static ExecutorService newFixedThreadPool(int var0, ThreadFactory var1) {

return new ThreadPoolExecutor(var0, var0, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), var1);

}

固定大小的線程池,可以指定線程池的大小,該線程池corePoolSize和maximumPoolSize相等,阻塞隊列使用的是LinkedBlockingQueue,大小為整數最大值。

該線程池中的線程數量始終不變,當有新任務提交時,線程池中有空閑線程則會立即執行,如果沒有,則會暫存到阻塞隊列。對于固定大小的線程池,不存在線程數量的變化。同時使用無界的LinkedBlockingQueue來存放執行的任務。當任務提交十分頻繁的時候,LinkedBlockingQueue

迅速增大,存在著耗盡系統資源的問題。而且在線程池空閑時,即線程池中沒有可運行任務時,它也不會釋放工作線程,還會占用一定的系統資源,需要shutdown。


2.newSingleThreadExecutor

public static ExecutorService newSingleThreadExecutor() {

return new Executors.FinalizableDelegatedExecutorService(new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue()));

}

public static ExecutorService newSingleThreadExecutor(ThreadFactory var0) {

return new Executors.FinalizableDelegatedExecutorService(new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), var0));

}

單個線程線程池,只有一個線程的線程池,阻塞隊列使用的是LinkedBlockingQueue,若有多余的任務提交到線程池中,則會被暫存到阻塞隊列,待空閑時再去執行。按照先入先出的順序執行任務。


3.newCachedThreadPool

public static ExecutorService newCachedThreadPool() {

return new ThreadPoolExecutor(0, 2147483647, 60L, TimeUnit.SECONDS, new SynchronousQueue());

}

public static ExecutorService newCachedThreadPool(ThreadFactory var0) {

return new ThreadPoolExecutor(0, 2147483647, 60L, TimeUnit.SECONDS, new SynchronousQueue(), var0);

}

緩存線程池,緩存的線程默認存活60秒。線程的核心池corePoolSize大小為0,核心池最大為Integer.MAX_VALUE,阻塞隊列使用的是SynchronousQueue。是一個直接提交的阻塞隊列, 他總會迫使線程池增加新的線程去執行新的任務。在沒有任務執行時,當線程的空閑時間超過keepAliveTime(60秒),則工作線程將會終止被回收,當提交新任務時,如果沒有空閑線程,則創建新線程執行任務,會導致一定的系統開銷。如果同時又大量任務被提交,而且任務執行的時間不是特別快,那么線程池便會新增出等量的線程池處理任務,這很可能會很快耗盡系統的資源。


4.newScheduledThreadPool

public static ScheduledExecutorService newScheduledThreadPool(int var0) {

return new ScheduledThreadPoolExecutor(var0);

}

public static ScheduledExecutorService newScheduledThreadPool(int var0, ThreadFactory var1) {

return new ScheduledThreadPoolExecutor(var0, var1);

}

定時線程池,該線程池可用于周期性地去執行任務,通常用于周期性的同步數據。

scheduleAtFixedRate:是以固定的頻率去執行任務,周期是指每次執行任務成功執行之間的間隔。

schedultWithFixedDelay:是以固定的延時去執行任務,延時是指上一次執行成功之后和下一次開始執行的之前的時間。


上述的提到的4種線程池并不包含所有的線程池,但在一般的多線程任務中足以擔當重任,當然,想要掌握更多種類的線程池以備不時之需也是極好的,本站的多線程教程可以輔助你學好線程池的相關知識。


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产精品视频二区不卡 | 久久国产精品伦理 | 香蕉视频在线观看网站 | 91桃色国产线观看免费 | 久久综合丝袜长腿丝袜 | 男人午夜网站 | 花蝴蝶亚洲一区二区三区 | www国产永久免费视频看看 | 一级特一级特色生活片 | 国产麻豆精品一区二区 | 欧美在线一级视频 | 欧美一级亚洲一级 | 日本三级免费网站 | 亚洲精品视频免费看 | 免费老色鬼永久视频网站 | 精品久久网 | 亚洲伊人久久综合影院2021 | 国产视频一二 | 欧美精品久久一区二区三区 | jiujiure精品 | 亚洲成人免费网站 | 波多野在线视频 | 亚洲欧美成人综合久久久 | 中国国产一国产一级毛片视频 | 亚洲全网成人资源在线观看 | 成人观看免费观看视频 | 天天操天天摸天天射 | 国产一级特黄a大片99 | 曰韩毛片 | 2020天堂中文字幕一区在线观 | 性xxx欧美 | 看全色黄大色黄大片女图片 | 日韩看片网站 | 少妇人妻挤奶水中文视频毛片 | 波多野结衣在线视频观看 | 涩涩视频www在线观看入口 | 日本资源站 | 亚洲视频你懂的 | 免费日韩 | 日一区二区 | 亚洲成在人色婷婷 |