当前位置: 首页 > news >正文

JMM小知识

1.什么是JMM?
JMM:(java Memory Model的缩写)Java内存模型


2.JMM是干嘛的?
作用:缓存一致性协议,用于定义数据读写的规则
JMM定义了线程工作内存和主内存之间的抽象关系:线程之间的共享变量存储在主内存(Main Memory)中,每个线程都有一个私有的本地内存(Local Memory)

解决共享对象可见性这个问题:volilate


3.JMM对这八种指令的使用,制定了如下规则:

■不允许read和load、 store和write操作之一 单独出现。即使用了read必须load, 使用了store必须write

■不允许线程丢弃他最近的assign操作,即工作变量的数据改变了之后,必须告知主存

■不允许一个线程将没有assign的数据从工作内存同步回主内存

■一个新的变量必须在主内存中诞生,不允许工作内存直接使用一个未被初始化的变量。就是怼变量实施use、store操作之前, 必须经过assign和load操作

■一个变量同一时间只有一个线程能对其进行lock。 多次lock后,必须执行相同次数的unlock才能解锁.

■如果对一个变量进行lock操作,会清空所有工作内存中此变量的值,在执行引擎使用这个变量前,必须重新load或assign操作初始化变量的值

■如果一个变量没有被lock,就不能对其进行unlock操作。也不能unlock一个被其他线程锁住的变量.

■对一个变量进行unlock操作之前,必须把此变量同步回主内存

     JMM对这八种操作规则和对volatile的一些特殊规则就能确定哪里操作是线程安全,哪些操作是线程不安全的了。但是这些规则实在复杂,很难在实践中直接分析。所以一般我们也不会通过上述规则进行分析。更多的时候,使用java的happen-before规则来进行分析。

http://www.dtcms.com/a/612124.html

相关文章:

  • 企业网站建设报价方案设计师入门必学软件
  • 软件开发和网站建设一样吗手机上自己做网站
  • 网站建设 管理系统开发做百度推广代运营有用吗
  • 网站关键词挖掘工具企业内部网络属于什么网络
  • 沈阳高端网站网站怎么添加外链
  • 铜陵网站建设推广自媒体网站源码
  • 济南市建设执业资格注册中心网站wordpress加载latex慢
  • 专业性行业网站有哪些上海二手房网站
  • 自助建站系统建的网站做排名吗长尾关键词搜索
  • 网站建设市场分析东莞seo网站制作报价
  • 谷歌企业网站seo代驾网站开发
  • 公司外贸网站郑州友网站建设
  • 大庆建设局网站首页建设系统网站
  • 建设网站用什么app中国营销网站
  • 云羽网络网站建设四川自助seo建站
  • 京东网站建设目标是什么react做网站
  • 抖音做我女朋友的网站php网站怎么注入
  • 本溪网站制作广告代理公司
  • 嘉兴市住房和城乡建设局门户网站网上编程课的哪家好
  • 上海工商网站平面设计公司招聘要求
  • 怎样做代刷网站长建盏周世义个人简介
  • 四川建设网站信息查询中心网站多级导航效果
  • C语言最好用的编译器 | 提升编程效率,选择适合的工具
  • C语言编译软件有哪些 | 选择合适的C语言编译器,提高开发效率
  • 企业网站设计方式做网站项目团队口号
  • 淘宝客做自已的网站一个人可以做网站吗
  • 网站管理员登录吴桥钢结构网架公司
  • 有关网站备案号规则资源网站很难做
  • 台阶仪在机翼气动性能中的应用:基于NASA案例的表面粗糙度精确量化
  • 品牌网站建设新闻wordpress多站点不显示