執行緒的各種狀態轉換

2021-07-23 12:11:07 字數 403 閱讀 5135

阻塞   

----------

新建 就緒 執行 死亡

———- ———- ———- ———-

新建(new)到就緒(runnable):start()

就緒(runnable)到執行(running):得到cpu資源

執行(running)到就緒(runnable):yield()或者cpu資源被占用

執行到(runnable)到阻塞(blocking):1io阻塞 2suspend()掛起 3sleep() 4wait()等待

5等待同步鎖

阻塞(blocking)到就緒(runnable):1 io方法返回 2resume() 3sleep()方法到 4notify()、notifyall() 5同步鎖釋放

執行緒的狀態轉換

執行緒的狀態轉換是執行緒控制的基礎。執行緒狀態總的可分為五大狀態 分別是生 死 可執行 執行 等待 阻塞。對於執行緒的阻止,考慮一下三個方面,不考慮io阻塞的情況 1.睡眠 2.等待 3.因為需要乙個物件的鎖定而被阻塞。睡眠 thread.sleep long millis 和thread.slee...

執行緒的狀態轉換

從執行緒被建立到執行完畢共經過了五個階段 新建 可執行 執行 等待 阻塞 睡眠 終止。關係圖如下所示 新狀態 new 執行緒以建立,但未呼叫任何方法 可執行狀態 runnable 已呼叫start 方法,進入就緒狀態,或程式剛從等待 阻塞 睡眠狀態回來,等待執行 執行狀態 run 程式在正常執行 等...

執行緒的狀態轉換

執行緒的狀態有 new runnable running waiting timed waiting blocked dead 當執行new thread runnabler 後,新建立出來的執行緒處於new狀態,這種執行緒不可能執行 當執行thread.start 後,執行緒處於runnable狀...