JAVA内存模型

==================================================================

Java 内存模型


浅析java内存模型–JMM(Java Memory Model)



全面理解JAVA内存模型

2.1 Java 内存模型的基本原理

Java 内存模型,由于 Java 被设计为 跨平台
的语言,在内存管理上,显然也要有一个统一的 模型。系统存在一个
主内存

(Main Memory) ,  Java 中所有变量都储存在主存中,对于所有线程都是共享的
每条线程都有自己的

工作内存
 

(Working Memory) , 工作内存中保存的是主存中某些变量的拷贝,线程对所有变量的操作都是在工作内存中进行,线程之间无法相互直接访问
,变量传递均需要通过主存完成。

因为当线程处于不同的cpu中时,它各自的变量保存在各自cpu的寄存器或者高速缓存中,这样回事的变量对于其它线程暂时不可见。

2.2  Volatile
的内存工作原理

Volatile 
是保证多个线程之间变量可见性的

,也就是说一个线程对变量进行了写操作,另外一个线程能够获取它最新的值。

它的工作原理是,它对写和读都是直接操作工作主存的。(这个可以通过操作字节码看到)

2.3  Synchronized
的内存操作模型 :

Synchronized, 有两层语义,一个是互斥,一个是可见性。在可见性上面,它的工作原理有点不同:当线程进入同步块时,会从主存里面获取最新值,然后当线程离开同步块时,再把变量的值更新到主存。

http://tomyz0223.iteye.com/blog/1001778

===================================================================

原文 

http://uule.iteye.com/blog/2419969

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » JAVA内存模型

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址