執行緒池的種類有哪些?

2021-10-03 08:50:30 字數 949 閱讀 5620

目錄

一、可快取執行緒池(newcachedthreadpool)

二、 指定工作執行緒的執行緒池(newfixedthreadpool)

三、定時的執行緒池newscheduledthreadpool

四、單執行緒執行緒池(newsinglethreadexecutor)

建立乙個可根據需要建立新執行緒的執行緒池,但是在以前構造的執行緒可用時將重用它們。對於執行

很多短期非同步任務的程式而言,這些執行緒池通常可提高程式效能。 呼叫 execute 將重用以前構造

的執行緒(如果執行緒可用)。如果現有執行緒沒有可用的,則建立乙個新執行緒並新增到池中。終止並

從快取中移除那些已有 60 秒鐘未被使用的執行緒。 因此,長時間保持空閒的執行緒池不會使用任何資

源。建立乙個可重用固定執行緒數的執行緒池,以共享的無界佇列方式來執行這些執行緒。在任意點,在大

多數 nthreads 執行緒會處於處理任務的活動狀態。如果在所有執行緒處於活動狀態時提交附加任務,

則在有可用執行緒之前,附加任務將在佇列中等待。如果在關閉前的執行期間由於失敗而導致任何

執行緒終止,那麼乙個新執行緒將代替它執行後續的任務(如果需要)。在某個執行緒被顯式地關閉之

前,池中的執行緒將一直存在。

建立乙個執行緒池,它可安排在給定延遲後執行命令或者定期地執行。

scheduledexecutorservice scheduledthreadpool= executors.newscheduledthreadpool(3);

scheduledthreadpool.schedule(newrunnable()

}, 3, timeunit.seconds);

scheduledthreadpool.scheduleatfixedrate(newrunnable()

},1,3,timeunit.seconds);

執行緒池有哪些引數?

我們首先建立乙個執行緒池 public class threadpoolparameters 當然,上面的引數是隨便填的,進入 executors.newfixedthreadpool裡面,檢視建立 fixedthreadpool執行緒池的原始碼,如下就是它原始碼的一部分 public static...

常用的執行緒池有哪些?

newfixedthreadpool 建立固定大小的執行緒池,每次提交乙個任務就建立乙個執行緒,直到執行緒達到執行緒池的最大大小 newcachedthreadpool 建立乙個可快取的執行緒池,此執行緒池不會對執行緒池大小做限制,執行緒池大小完全依賴於 作業系統 或者說 jvm 能夠建立的最大執行...

執行緒池的種類

一般建立簡單的執行緒池都是通過executors這個類的靜態方法建立的,但是可能大公司要求根據threadpoolexecutor 去建立執行緒池 因為使用threadpoolexecutor 更加明確執行緒池的執行規則,規避資源耗盡的風險。具體根據公司來 簡單的執行緒池包括如下四個組成部分即可 我...