JUC: JUC 是 Java 并發編程的核心工具包,全稱為 Java Util Concurrent,是 java.util.concurrent
包及其子包的簡稱。它提供了一套強大且高效的并發編程工具,用于簡化多線程開發并提高性能。
CPU核心數和線程數的關系:1核處理1線程(同一時間單次)
CPU內核結構:
工作內存:高速緩沖區(存在原因:內存條讀寫速度跟不上CPU處理速度)
主內存:內存條
Linux系統:單核最大線程為1000
JMM: Java內存模型(JMM - Java Memory Model)
-
主內存(Main Memory):所有共享變量的存儲區域
-
工作內存(Working Memory):每個線程私有的內存空間,保存該線程使用到的變量副本
緩存一致性:
多個CPU從主內存讀取同一個數據到各自的高速緩存,當其中某個CPU修改了緩存里的數據,該數據馬上同步會主內存,其他的CPU通過總線嗅探機制可以感知到數據的變化從而將自己緩存的數據失效
內存間交互操作
JMM定義了8種原子操作:
-
lock(鎖定):作用于主內存變量