亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

江北区| 梧州市| 合山市| 龙井市| 丰台区| 板桥市| 吴忠市| 合川市| 德惠市| 马公市| 松溪县| 杂多县| 新乡市| 榕江县| 邢台县| 平舆县| 个旧市| 屏东市| 湾仔区| 宁夏| 金乡县| 天全县| 喀什市| 新河县| 红桥区| 阿克陶县| 科尔| 三门峡市| 克东县| 榆林市| 老河口市| 牙克石市| 雷山县| 教育| 云安县| 江陵县| 荃湾区| 原阳县| 融水| 寻乌县| 石屏县|