@多線程的思維導圖
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類形象的比喻成存放資料的盒子,盒子中可以存儲每個線程的私有資料。