好文收集之JAVA併發:線程間的協做(wait/notify/sleep/yield/join)

  • 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()這些操做。

  • JVM源碼分析之Object.wait/notify實現

    太喜歡這個做者了,文章分析之詳盡,太棒了。一會兒解決了鎖池、等待池、對象池這些虛頭巴腦的東西。

    重點在這個ObjectMonitor,醍醐灌頂!只能說本身太沒動力了,只要看了源碼,多麼的清晰明瞭,哪還會糾結這麼久!

  • JAVA併發編程:幹掉 Synchronized

    本身學習了上面的文章後,理解的Synchronized 整個流程。亂扯了一通,歡迎各位看官指正。

  • 本身總結:

    sleep()和wait()也算是面試常問的問題了。它倆也相愛相殺多年,瞭解了用途和原理後,其實很容易理解。

    會忘記主要也是用的少。作作筆記,多翻看才行。看再多,也得有本身的總結。可以用本身組織的語音描述出來要表達的東西,纔是最好的。

    • 相同點
      • 都能使程序暫停
      • 均可以指定時間後自動醒來,※只是醒來後的動做不同※
      • 均可以在synchronized內使用,※調用後產生的結果不同※
      • 均可以經過interrupt()方法打斷線程的暫停狀態, 拋出InterruptedException
    • 不一樣點
      • 先說一點,其實兩個是徹底不一樣的兩個東西。對比感受就是硬比。硬撩的感受,尬的不行。
      • 就比如開車同樣,sleep是讓速不讓道,道我還佔着,別人也過不來。wait是讓速又讓道,大家快大家走,我得等等。
      • 下面錯了表格來描述不一樣點,表格描述的很到位。
      • 方法 所屬類 方法類型 解除方法 場景 用途
        sleep Thread 靜態方法 不釋放鎖 timeout,interrupt 無限制 線程內的控制
        wait Object 非靜態方法 釋放鎖 timeout,notify,interrupt 同步語句塊 線程間的通訊
相關文章
相關標籤/搜索