中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中的有哪些線程池

發布時間:2020-06-19 16:51:33 來源:億速云 閱讀:135 作者:元一 欄目:編程語言

線程池是什么?

線程池(英語:thread pool):一種線程使用模式。線程過多會帶來調度開銷,進而影響緩存局部性和整體性能。而線程池維護著多個線程,等待著監督管理者分配可并發執行的任務。這避免了在處理短時間任務時創建與銷毀線程的代價。線程池不僅能夠保證內核的充分利用,還能防止過分調度。可用線程數量應該取決于可用的并發處理器、處理器內核、內存、網絡sockets等的數量。 例如,線程數一般取cpu數量+2比較合適,線程數過多會導致額外的線程切換開銷。

如果所有線程池都始終保持繁忙,但隊列中包含掛起的工作,則線程池將在一段時間后輔助線程的數目永遠不會超過最大值。超過最大值的線程可以排隊,但他們要等到其他線程完成后才能啟動。

java里面的線程池的頂級接口是Executor,Executor并不是一個線程池,而只是一個執行線程的工具,而真正的線程池是ExecutorService。

java中的有哪些線程池?

1.newCachedThreadPool創建一個可緩存線程池程

2.newFixedThreadPool 創建一個定長線程池

3.newScheduledThreadPool 創建一個定長線程池

4.newSingleThreadExecutor 創建一個單線程化的線程池

下面一一分析:

newCachedThreadPool,是一種線程數量不定的線程池,并且其最大線程數為Integer.MAX_VALUE,這個數是很大的,一個可緩存線程池,如果線程池長度超過處理需要,可靈活回收空閑線程,若無可回收,則新建線程。但是線程池中的空閑線程都有超時限制,這個超時時長是60秒,超過60秒閑置線程就會被回收。

調用execute將重用以前構造的線程(如果線程可用)。這類線程池比較適合執行大量的耗時較少的任務,當整個線程池都處于閑置狀態時,線程池中的線程都會超時被停止。

newFixedThreadPool 創建一個指定工作線程數量的線程池,每當提交一個任務就創建一個工作線程,當線程 處于空閑狀態時,它們并不會被回收,除非線程池被關閉了,如果工作線程數量達到線程池初始的最大數,則將提交的任務存入到池隊列(沒有大小限制)中。

由于newFixedThreadPool只有核心線程并且這些核心線程不會被回收,這樣它更加快速底相應外界的請求。

newScheduledThreadPool 創建一個線程池,它的核心線程數量是固定的,而非核心線程數是沒有限制的,并且當非核心線程閑置時會被立即回收,它可安排給定延遲后運行命令或者定期地執行。這類線程池主要用于執行定時任務和具有固定周期的重復任務。

newSingleThreadExecutor這類線程池內部只有一個核心線程,以無界隊列方式來執行該線程,這使得這些任務之間不需要處理線程同步的問題,它確保所有的任務都在同一個線程中按順序中執行,并且可以在任意給定的時間不會有多個線程是活動的。

以上就是java線程池是什么的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

湘潭县| 金沙县| 华宁县| 泸溪县| 老河口市| 梨树县| 探索| 莒南县| 灌云县| 石柱| 甘南县| 阜康市| 偃师市| 瑞丽市| 藁城市| 安徽省| 宜宾市| 印江| 论坛| 冀州市| 大同市| 嘉善县| 德惠市| 高碑店市| 成安县| 青河县| 安康市| 米脂县| 明溪县| 九台市| 临澧县| 灯塔市| 华亭县| 闵行区| 武功县| 鱼台县| 泸溪县| 曲麻莱县| 闽侯县| 德钦县| 清原|