java内存模型jvm虚拟机简要分析
主内存和工作内存
- Java 内存模型规定了所有的变量都存储在主内存中, 每条线程有自己的工作内存
- 线程的工作内存中保存了被该线程使用的变量的主内存副本, 线程对变量的所有操作 (读取、赋值等) 都必须在工作内存中进行, 而不能直接读写主内存中的数据
- 不同的线程之间也无法直接访问对方工作内存中的变量, 线程间变量值的传递均需要通过主内存来完成

内存间的交互操作

原子性、可见性、有序性
Java 内存模型是围绕着在并发过程中如何处理原子性、可见性、有序性这三个特征来建立的
原子性
基本数据类型的访问、读写都是具备原子性的。synchronized 实现原子性
可见性
可见性是指当一个线程修改了共享变量的值时, 其他线程能够立刻得知这个修改Java 内存模型是通过在变量修改后将新值同步回主内存, 在变量读取前从主内存刷新变量值这种依赖主内存作为传递媒介的方式来实现可见性的volatile、synchronized、final 实现可见性
有序性
volatile、synchronized 实现有序性
以上就是java内存模型jvm虚拟机简要分析的详细内容,更多关于java内存模型jvm虚拟机的资料请关注脚本之家其它相关文章!
相关文章
mybatisplus的坑 insert标签insert into select无参数问题的解决
这篇文章主要介绍了mybatisplus的坑 insert标签insert into select无参数问题的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-12-12
自带IDEA插件的阿里开源诊断神器Arthas线上项目BUG调试
这篇文章主要为大家介绍了自带IDEA插件阿里开源诊断神器Arthas线上项目BUG调试,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-06-06
Java Hutool 包工具类推荐 ExcelUtil详解
这篇文章主要介绍了Java Hutool 包工具类推荐 ExcelUtil详解,需要引入hutool包,版本号可根据实际情况更换,除hutool包之外,还需要引入操作Excel必要包,本文给大家介绍的非常详细,需要的朋友可以参考下2022-09-09
日志模块自定义@SkipLogAspect注解跳过切面的操作方法
文章介绍了一个自定义注解@SkipLogAspect,用于在日志模块中跳过特定方法的日志切面,这个注解可以用于需要避免大对象转换为JSON时导致的OOM问题,文章还提供了注解的实现代码以及一个测试示例,展示了如何在控制器中使用该注解来跳过日志切面,感兴趣的朋友一起看看吧2025-02-02


最新评论