java内存模型jvm虚拟机简要分析

作者:小伙无限帅 时间:2022-09-08 09:29:34 

主内存和工作内存

  • Java 内存模型规定了所有的变量都存储在主内存中, 每条线程有自己的工作内存

  • 线程的工作内存中保存了被该线程使用的变量的主内存副本, 线程对变量的所有操作 (读取、赋值等) 都必须在工作内存中进行, 而不能直接读写主内存中的数据

  • 不同的线程之间也无法直接访问对方工作内存中的变量, 线程间变量值的传递均需要通过主内存来完成

java内存模型jvm虚拟机简要分析

内存间的交互操作

java内存模型jvm虚拟机简要分析

原子性、可见性、有序性

Java 内存模型是围绕着在并发过程中如何处理原子性、可见性、有序性这三个特征来建立的

原子性

基本数据类型的访问、读写都是具备原子性的。synchronized 实现原子性

可见性

可见性是指当一个线程修改了共享变量的值时, 其他线程能够立刻得知这个修改Java 内存模型是通过在变量修改后将新值同步回主内存, 在变量读取前从主内存刷新变量值这种依赖主内存作为传递媒介的方式来实现可见性的volatile、synchronized、final 实现可见性

有序性

volatile、synchronized 实现有序性

来源:https://blog.csdn.net/qq271003351/article/details/120246184

标签:java,虚拟机,jvm,内存模型
0
投稿

猜你喜欢

  • Android解决所有双击优化的问题

    2023-07-27 09:07:03
  • SpringBoot+JSON+AJAX+ECharts+Fiddler实现前后端分离开发可视化

    2021-11-12 14:49:17
  • Android Handler,Message,MessageQueue,Loper源码解析详解

    2022-04-17 17:34:57
  • Java定时器Timer简述

    2023-07-20 19:17:16
  • Mybatis基础概念与高级应用小结

    2023-11-26 20:18:22
  • C语言实现通讯管理系统设计

    2022-12-29 13:04:50
  • javafx实现时钟效果

    2022-09-10 02:23:31
  • Java开发人员需知的十大戒律

    2023-09-17 07:33:50
  • 创建Spring Boot项目的几种方式总结(推荐)

    2023-07-04 22:32:16
  • C#控件picturebox实现图像拖拽和缩放

    2023-08-09 08:23:05
  • 一个Servlet是如何处理多个请求的?

    2023-01-18 11:19:32
  • C语言代码实现三子棋小游戏

    2023-04-16 02:12:41
  • datagridview实现手动添加行数据

    2022-03-29 16:31:09
  • Android开发解决popupWindow重叠报错问题

    2022-08-02 13:27:01
  • C#中==(双等于号)与equals()区别详解

    2021-09-21 18:49:42
  • Java Springboot如何基于图片生成下载链接

    2023-05-19 19:57:32
  • C++实现企业职工工资管理系统

    2023-11-02 17:34:34
  • Java Springboot的目的你知道吗

    2022-12-20 14:16:24
  • SpringBoot微服务注册分布式Consul的详细过程

    2022-05-30 04:27:53
  • C#中String和StringBuilder的简介与区别

    2021-10-13 06:40:54
  • asp之家 软件编程 m.aspxhome.com