ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JMM定义、作用、三大特性

2022-08-05 10:01:15  阅读:164  来源: 互联网

标签:变量 线程 内存 JMM 共享 多线程 三大 定义


JMM 三大特性
JMM(Java内存模型 Java Memory Model) 本身是一种抽象的概念并不存在,仅仅是一组定义或规范,通过这组规范定义了程序中各个变量的访问方式,决定了线程对共享变量的写入何时对另一个线程可见,关键技术都是围绕多线程的可见性、原子性、有序性展开的
作用:
通过JMM实现了主内存和线程之间的抽象关系
解决了各个硬件平台和操作系统内存访问差异,以实现Java程序在各个平台下都能达到一致访问的效果
1. 可见性 :当一个线程更改了共享变量的值,其他线程能否立即知道共享变量发生了变更。JMM规定了共享变量存储在主内存中。系统主内存中共享变量被写入的时机不确定,多线程的环境下容易产生脏读。每个线程都有自己的工作内存,工作内存中保存了该线程使用变量的主内存副本拷贝,每个线程只能操作自己工作内存中的变量,不能直接读取主内存中的变量。不同线程不能直接访问对方工作内存中的变量,线程变量值的传递需要通过主内存来完成
2. 原子性 :指同一个操作不能被打断,多线程的环境下,操作不能被其他线程干扰
3. 有序性 :JAVA规范规定的JVM线程内部维持的顺序化语序,如果代码执行的最终结果与顺序执行的结果一致,那么指令执行的顺序与代码执行的顺序不一致 即指令重新排序
优点: JVM 根据处理器特性对机器指令重排 使机器指令更符合CPU的执行顺序 ,最大限度的发挥了机器性能
缺点:指令重排可以保证串行语义的一致,但不能保证多线程语义也一致

标签:变量,线程,内存,JMM,共享,多线程,三大,定义
来源: https://www.cnblogs.com/buyiqinlian/p/16553377.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有