多线程七种执行的状态
生活随笔
收集整理的這篇文章主要介紹了
多线程七种执行的状态
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
初始化狀態
就緒狀態
運行狀態
死亡狀態
阻塞狀態
超時等待
等待狀態
start():調用start()方法會使得該線程開始執行,正確啟動線程的方式。
wait():調用wait()方法,進入等待狀態,釋放資源,讓出CPU。需要在同步快中調用。
sleep():調用sleep()方法,進入超時等待,不釋放資源,讓出CPU
stop():調用sleep()方法,線程停止,線程不安全,不釋放鎖導致死鎖,過時。
join():調用sleep()方法,線程是同步,它可以使得線程之間的并行執行變為串行執行。
yield():暫停當前正在執行的線程對象,并執行其他線程,讓出CPU資源可能立刻獲得資源執行。
yield()的目的是讓相同優先級的線程之間能適當的輪轉執行
notify():在鎖池隨機喚醒一個線程。需要在同步快中調用。
nnotifyAll():喚醒鎖池里所有的線程。需要在同步快中調用。
leep 主動釋放cpu執行權 休眠一段時間
運行狀態→限時等待狀態
限時等待狀態→就緒狀態→運行狀態
Synchronized 沒有獲取到鎖 當前線程變為阻塞狀態
如果有線程釋放了鎖,喚醒正在阻塞沒有獲取到鎖的線程
從新進入到獲取鎖的狀態
wait() 運行—等待狀態
notify() 等待狀態–阻塞狀態(沒有獲取到鎖的線程 隊列)
—就緒狀態→運行狀態
總結
以上是生活随笔為你收集整理的多线程七种执行的状态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: properties 转 yml
- 下一篇: 守护线程与用户线程