天天看點

多線程的思維導圖

@多線程的思維導圖

Java多線程學習(一)Java多線程入門

多線程的思維導圖

Java多線程學習(二)synchronized關鍵字(1)

多線程的思維導圖

注意:可重入鎖的概念。

另外要注意:synchronized取得的鎖都是對象鎖,而不是把一段代碼或方法當做鎖。 如果多個線程通路的是同一個對象,哪個線程先執行帶synchronized關鍵字的方法,則哪個線程就持有該方法,那麼其他線程隻能呈等待狀态。如果多個線程通路的是多個對象則不一定,因為多個對象會産生多個鎖。

Java多線程學習(二)synchronized關鍵字(2)

多線程的思維導圖

注意:

  • 其他線程執行對象中synchronized同步方法(上一節我們介紹過,需要回顧的可以看上一節的文章)和synchronized(this)代碼塊時呈現同步效果;
  • 如果兩個線程使用了同一個“對象螢幕”(synchronized(object)),運作結果同步,否則不同步.

synchronized關鍵字加到static靜态方法和synchronized(class)代碼塊上都是是給Class類上鎖,而synchronized關鍵字加到非static靜态方法上是給對象上鎖。

資料類型String的常量池屬性:在Jvm中具有String常量池緩存的功能

Java多線程學習(三)volatile關鍵字

多線程的思維導圖

注意:

synchronized關鍵字和volatile關鍵字比較

Java多線程學習(四)等待/通知(wait/notify)機制

多線程的思維導圖

Java多線程學習(五)線程間通信知識點補充

多線程的思維導圖

注意: ThreadLocal類主要解決的就是讓每個線程綁定自己的值,可以将ThreadLocal類形象的比喻成存放資料的盒子,盒子中可以存儲每個線程的私有資料。

Java多線程學習(六)Lock鎖的使用

多線程的思維導圖

Java多線程學習(七)并發程式設計中一些問題

多線程的思維導圖

Java多線程學習(八)線程池與Executor 架構

多線程的思維導圖