java内存模型jvm虚拟机简要分析
作者:小伙无限帅
Java 内存模型的主要目的是定义程序中各种变量的访问规则, 关注在虚拟机中把变量值存储到内存和从内存中取出变量值这样的底层细节
主内存和工作内存
- Java 内存模型规定了所有的变量都存储在主内存中, 每条线程有自己的工作内存
- 线程的工作内存中保存了被该线程使用的变量的主内存副本, 线程对变量的所有操作 (读取、赋值等) 都必须在工作内存中进行, 而不能直接读写主内存中的数据
- 不同的线程之间也无法直接访问对方工作内存中的变量, 线程间变量值的传递均需要通过主内存来完成
内存间的交互操作
原子性、可见性、有序性
Java 内存模型是围绕着在并发过程中如何处理原子性、可见性、有序性这三个特征来建立的
原子性
基本数据类型的访问、读写都是具备原子性的。synchronized 实现原子性
可见性
可见性是指当一个线程修改了共享变量的值时, 其他线程能够立刻得知这个修改Java 内存模型是通过在变量修改后将新值同步回主内存, 在变量读取前从主内存刷新变量值这种依赖主内存作为传递媒介的方式来实现可见性的volatile、synchronized、final 实现可见性
有序性
volatile、synchronized 实现有序性
以上就是java内存模型jvm虚拟机简要分析的详细内容,更多关于java内存模型jvm虚拟机的资料请关注脚本之家其它相关文章!