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(锁定):作用于主内存变量