terminated 執行緒 執行緒池都有哪些狀態

2021-10-12 20:51:12 字數 572 閱讀 7929

1.running:這是最正常的狀態,接受新的任務,處理等待佇列中的任務。執行緒池的初始化狀態是running。執行緒池被一旦被建立,就處於running狀態,並且執行緒池中的任務數為0。

2.shutdown:不接受新的任務提交,但是會繼續處理等待佇列中的任務。呼叫執行緒池的shutdown()方法時,執行緒池由running -> shutdown。

3.stop:不接受新的任務提交,不再處理等待佇列中的任務,中斷正在執行任務的執行緒。呼叫執行緒池的shutdownnow()方法時,執行緒池由(running or shutdown ) -> stop。

當執行緒池在shutdown狀態下,阻塞隊列為空並且執行緒池中執行的任務也為空時,就會由 shutdown -> tidying。

當執行緒池在stop狀態下,執行緒池中執行的任務為空時,就會由stop -> tidying。

5.terminated:執行緒池處在tidying狀態時,執行完terminated()之後,就會由 tidying -> terminated。

執行緒 執行緒池

執行緒池是一種多執行緒處理形式,處理過程中將任務新增到佇列,然後在建立執行緒後執行,主要實現 建立執行緒和管理執行緒,並且給執行緒分配任務。執行緒池中的執行緒是併發執行的。乙個比較簡單的執行緒池至少應包含執行緒池管理器 工作執行緒 任務列隊 任務介面等部分。其中執行緒池管理器的作用是建立 銷毀並管理...

執行緒 執行緒池

乙個簡單執行緒的建立和銷毀如下 與程序程序相比,執行緒是一種輕量級的工具,但是輕量並不代表沒有,它的建立和關閉依然需要花費時間,如果建立和銷毀的時間還大於執行緒本身完成的工作,那就會得不償失,甚至會造成out of memory。即使沒有,大量的執行緒 也會給gc帶來巨大的壓力。為了解決這樣的問題,...

mysql 執行緒池 c MySQL執行緒池

mysql執行緒池 在麼mysql中,執行緒池指的是用來管理處理mysql客戶端連線任務的執行緒的一種機制。如果把執行緒看做系統資源那麼執行緒池本質上是對系統資源的管理,對應作業系統來說執行緒的建立和銷毀是比較消耗系統資源的,頻繁的建立與銷毀執行緒必然給系統帶來不必要的資源浪費,特別是在高負載的情況...