多執行緒與高併發基礎知識
一、概覽
多執行緒主要知識點:
執行緒安全、執行緒封閉、執行緒排程、同步容器、併發容器、AQS、J.U.C
高併發解決方案:
擴容、快取、佇列、拆分、服務降級與熔斷、資料庫切庫、分庫分表
二、併發
概念:
同時擁有兩個或者多個執行緒,如果程式在單核處理器上執行,多個執行緒
將交替的換入或者換出記憶體,這些執行緒是同時“存在”的,每個執行緒
都處於執行過程中的某個轉檯,如果執行在多核處理器上,此時,程式
中的每個執行緒都將分配到一個處理器核上,因此可以同時執行
對CPU 與執行緒之間關係的理解:
https://zhidao.baidu.com/question/493102264.html
三、CPU多級快取
隨著現代半導體工藝的發展,CPU的頻率越來遠快,相對記憶體快了一個數量級,
對於訪存的操作CPU就需要等待主存,這樣會導致資源的白白浪費。
所以cache的出現是為了解決CPU與記憶體速度不匹配的問題。
對CPU多級快取的理解:
https://blog.csdn.net/cl2010abc/article/details/80745185
https://www.cnblogs.com/yanlong300/p/8986041.html
四、Java記憶體模型
java 記憶體模型同步的八種操作 (https://blog.csdn.net/timchen525/article/details/80412699
lock 鎖定
unlock 解鎖
read 讀取
load 載入
use 用
assign 賦值
store 儲存
write 寫入
https://blog.csdn.net/javazejian/article/details/72772461
概念太多,感覺沒理解好,回頭重點看看
五、併發模擬工具
postman: http 請求模擬工具
Apache bench(AB): apache 附帶工具,測試網站效能
JMeter: Apache 組織開發的壓力測試工具
程式碼: Semaphore, CountDownLatch