91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

塔城市| 房产| 新竹县| 西吉县| 丰县| 双城市| 宁武县| 玉龙| 广宁县| 多伦县| 望谟县| 禹州市| 洛扎县| 浦江县| 兴安县| 凯里市| 常熟市| 庐江县| 蓬莱市| 易门县| 深水埗区| 孙吴县| 大宁县| 沈阳市| 万安县| 广州市| 云梦县| 广汉市| 平原县| 逊克县| 霍林郭勒市| 隆尧县| 噶尔县| 子长县| 德庆县| 普兰店市| 黄骅市| 南澳县| 隆化县| 株洲市| 尚义县|