Java 併發編程:線程間的協做(wait/notify/sleep/yield/join)html
博文開始複習了下線程狀態,給出了線程狀態間的轉換圖示。java
以實例,源碼,解釋描述方式,闡述了wait, notify ,sleep等的功能 點。很是詳細。贊一個。git
java sleep(),wait(),notify()函數區別面試
幾句話描述了這幾者之間的相同和不一樣點,做爲面試題來回答,仍是能夠的。編程
wait、notify、sleep、interrupt對比分析併發
這篇文章裏,給出了一個圖表,對比了wait和sleep的相同和不一樣,很精練。函數
Wait-Notify機制源碼分析
鎖機制。有介紹說Synchroniezd的鎖的機制。學習
結束下面這篇博文,不看源碼,也能串起整個Synchronized的流程。.net
包括warit(),notify()這些操做。
太喜歡這個做者了,文章分析之詳盡,太棒了。一會兒解決了鎖池、等待池、對象池這些虛頭巴腦的東西。
重點在這個ObjectMonitor,醍醐灌頂!只能說本身太沒動力了,只要看了源碼,多麼的清晰明瞭,哪還會糾結這麼久!
本身學習了上面的文章後,理解的Synchronized 整個流程。亂扯了一通,歡迎各位看官指正。
本身總結:
sleep()和wait()也算是面試常問的問題了。它倆也相愛相殺多年,瞭解了用途和原理後,其實很容易理解。
會忘記主要也是用的少。作作筆記,多翻看才行。看再多,也得有本身的總結。可以用本身組織的語音描述出來要表達的東西,纔是最好的。
方法 | 所屬類 | 方法類型 | 鎖 | 解除方法 | 場景 | 用途 |
---|---|---|---|---|---|---|
sleep | Thread | 靜態方法 | 不釋放鎖 | timeout,interrupt | 無限制 | 線程內的控制 |
wait | Object | 非靜態方法 | 釋放鎖 | timeout,notify,interrupt | 同步語句塊 | 線程間的通訊 |