java之多線程與高併發學習

關於lamada表達式的學習:https://www.jianshu.com/p/bf2a4e1aac0e

單線程就是一個執行路徑,多線程就是從多個路徑併發執行。
多線程和高併發學的似乎就是sychronized 和volatile & CAS 和AQS。。

synchronized

synchronized,這個東西我們一般稱之爲”同步鎖“,他在修飾代碼塊的時候需要傳入一個引用對象作爲“鎖”的對象。

在修飾方法的時候,默認是當前對象作爲鎖的對象
在修飾類時,默認是當前類的Class對象作爲所的對象
故存在着方法鎖、對象鎖、類鎖 這樣的概念。
詳細查看:https://www.cnblogs.com/shoshana-kong/p/10551952.html
在這裏插入圖片描述

volatile

在這裏插入圖片描述

CAS

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
講解了ReentrantLock、CountDownLatch(門栓)、CyclicBarrier(柵欄)、join方法, Phaser(可以理解爲多個柵欄)、ReadWriteLock、ReentrantReadWriteLock(可以讀寫鎖分離,共同讀提高效率)、Semaphore(信號量)、Exchange、LockSupport。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章