1. 程式人生 > >執行緒的基本概念、基本狀態——多執行緒技術一

執行緒的基本概念、基本狀態——多執行緒技術一

多執行緒技術在實際開發中運用的比較多,但是也是比較難的一部分,如果能夠熟練掌握,那你的薪資肯定是高的不行。

基本概念:執行緒就像一條要執行的線索,單執行緒就像只有一個在做事,多執行緒就像很多人在做事(很多人同時用一個資源)。一個程式中可以有多條執行線索同時執行,一個執行緒就是程式中的一條執行線索,每個執行緒上都關聯要執行的程式碼,即可以有多端程式程式碼同時執行。每個程式至少都有一個執行緒,一個程式的main方法就是一個執行緒。

基本狀態:就緒,執行,synchronize阻塞,wait和sleep掛起,結束。wait必須在synchronized內部使用。

執行緒各個狀態關係如圖(執行緒的生命週期):


sleep()與wait()的區別:

sleep是Thread類的方法,wait是Object類中定義的方法. 

sleep():只是睡眠,引數可以設定,單位毫秒,可以設定什麼時候自動啟動,sleep()只是暫停,把執行機會給其他執行緒,但是監控狀態依然保持,到時會自動回覆。呼叫sleep不是釋放物件鎖。

wait():對此物件呼叫wait方法導致本線性放棄物件鎖,進入等待此物件的等待鎖定池中,只有針對此物件發出notify方法(或notifyAll)後本線性才進入物件鎖定池準備獲得物件鎖進入執行狀態。