7.1 Java内存模型(JMM)与happens-before规则 7.1 Java内存模型(JMM)与happens-before规则 在并发编程的迷宫中,程序员最常遭遇的幽灵并非死锁或活锁,而是内存可见性问题——一个线程对共享变量的写入,在另一个线程眼中仿佛从未发生。这种“视而不见”的诡异现象,根源在于现代计算机体系结构的多层缓存机制与编译器优化策略。为驯服这一混沌,Java语言规范(JLS)构建了一座精密的理论桥梁:Java内存模型(Java Memory Model, JMM)。它并非物理内存的映射,而是一套抽象的、形式化的语义规则,用以界定多线程程序中操作的可见性与有序性边界。而在这座桥梁的核心支柱之上,矗立着一条看似简单却威力无穷的法则:happens-before规则。