running:這是最正常的狀態,接受新的任務,處理等待佇列中的任務。執行緒池的初始化狀態是running。執行緒池被一旦被建立,就處於running狀態,並且執行緒池中的任務數為0。
shutdown:不接受新的任務提交,但是會繼續處理等待佇列中的任務。呼叫執行緒池的shutdown()方法時,執行緒池由running -> shutdown。
stop:不接受新的任務提交,不再處理等待佇列中的任務,中斷正在執行任務的執行緒。呼叫執行緒池的shutdownnow()方法時,執行緒池由(running or shutdown ) -> stop。
當執行緒池在shutdown狀態下,阻塞隊列為空並且執行緒池中執行的任務也為空時,就會由 shutdown -> tidying。
當執行緒池在stop狀態下,執行緒池中執行的任務為空時,就會由stop -> tidying。
terminated:執行緒池處在tidying狀態時,執行完terminated()之後,就會由 tidying -> terminated。
執行緒狀態 執行緒池
1.執行緒狀態變遷 2.為什麼notify notifyall wait要在同步方法或塊中執行 2.1在j a中,所有物件都能夠被作為 監視器monitor 指乙個擁有乙個獨佔鎖,乙個入口佇列和乙個等待佇列的實體entity。所有物件的非同步方法都能夠在任意時刻被任意執行緒呼叫,此時不需要考慮加鎖的...
20200820 執行緒池的狀態
記住,是執行緒池的狀態,不是執行緒狀態。狀態說明 執行緒池處在running狀態時,能夠接受新任務,以及對已新增的任務進行處理。狀態切換 執行緒池的初始化狀態是running,換句話說,執行緒池一旦被建立,就處於running狀態,並且執行緒池裡面的數量為0.狀態說明 執行緒池處在shutdown狀...
執行緒池 關於執行緒池的五種狀態
在threadpoolexecutor類中定義了執行緒的五種狀態表示,通過atomicinteger 的高三位來表示執行緒的狀態 private static final int count bits integer.size 3 private static final int running 1...