栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

并发编程-基础篇一-java内存模型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

并发编程-基础篇一-java内存模型

基础概念

原子性:一个操作或多个操作,要么全部执行并且执行的过程中不会被打断,要么都不执行。
可见性:多个线程同时访问一个变量时,一个线程改变了这个变量的值,其他线程能立即看到修改的值。
有序性:程序的执行顺序按照代码的先后顺序执行。
PS:Java 如何实现原子操作

  • CAS:保证原子性
  • volatile:单个操作保证原子性,组合操作(例如:++操作符)不保证原子性证
  • Lock:保证原子性
  • synchronized:保证原子性
Java 内存模型结构 (JMM)

java堆和方法区是多个线程共享的数据区域,多个线程可以操作堆和方法区中的同一个数据,Java 内存模型的英文名称为 Java Memory Model(JMM),其并不像 JVM 内存结构一样真实存在,而是一个抽象的概念。

从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:

  • 线程之间的共享变量存储在主内存中
  • 每一个线程都有一个私有的本地内存(抽象出来的,并不是真实存在的)

    线程 A/B 之间通信主要经历步骤为:
  • 线程A把本地内存中A更新过的数据刷新到主内存中
  • 线程B读取主内存中A更新过的数据
    从整体上看,这个通信过程需要经过主内存。JMM 通过控制主内存与每个线程本地内存之间的交互来提供内存可见性保证。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877197.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号