1. 程式人生 > >多執行緒與高併發基礎知識

多執行緒與高併發基礎知識

一、概覽

多執行緒主要知識點:

執行緒安全、執行緒封閉、執行緒排程、同步容器、併發容器、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