3月10日学习java笔记

volatile 关键字与JMM

  1. volatile 作用
    可见性:确保线程读取变量时从主内存获取最新值

禁止指令重排序:防止编译器和CPU优化导致代码执行顺序异常

  1. 使用场景

class SharedResource {
private volatile boolean flag = false; // 保证多线程可见性

public void toggleFlag() {
    flag = !flag; // 非原子操作(volatile不保证原子性!)
}

}
3. Java内存模型(JMM)
主内存与工作内存:

线程操作变量时,需从主内存拷贝到工作内存,修改后刷回主内存

happens-before原则:

volatile写操作happens-before后续对该变量的读操作

线程启动、终止、中断等操作的顺序性约束

posted @ 2025-03-14 23:57  头发少的文不识  阅读(11)  评论(0)    收藏  举报