首页 | 归档 | 分类 | 标签 | 关于 |
|
Java 内存模型 (Java Memory Model) 定义了 JVM 如何正确访问计算机主内存。JMM 指定了不同线程如何以及何时可以看到其他线程写入到共享变量的值,以及如何在必要时同步访问共享变量。
Java 多线程之间通信一般有两种方式: 共享内存
和消息传递
。Java 的并发采用共享内存的方式,共享内存通信方式对于程序员而言总是透明隐式进行的。
JMM 关键技术点都是围绕着多线程的原子性
、可见性
、有序
来讨论的。JMM 解决了可见性和有序性的问题,而锁解决了原子性的问题。
Java 内存模型的可见性问题的底层实现是通过内存屏障 (memory barriers) 实现。
现代计算机内存模型: