- 《Java并发编程的艺术》第3章的标题《Java内存模型》,初一看自己还以为讲解的JVM的内存模型(堆、栈、方法区等)
- 真正学习时,发现这一章的内容组织对自己来说比较难理解,学得迷迷糊糊的
- 查看了一些资料,起码比不看的效果更好:
- 自己之前的博客:Java高并发之JMM(java内存模型、volatile变量、JMM的三大特性)
- 短小精悍的Java学习笔记:Java并发 —— 十、Java 内存模型
- 发现《Java并发编程的艺术》第3章,就是在详细介绍Java并发编程的三大特性中的两个特性:可见性、有序性
-
可见性
- 可见性指当一个线程修改了共享变量的值,其它线程能够立即得知这个修改。
- Java 内存模型(简写JMM)是通过在变量修改后将新值同步回主内存,在变量读取前从主内存刷新变量值来实现可见性的
- 可见性的三种主要实现方式:volatile、 synchronized、final
- 主要有三种实现可见性的方式:
-
有序性
- JMM中,为了提高程序的执行性能,允许编译器和处理器对指令序列重新进行排序
- 这使得,本线程内观察,所有操作都是有序的;在其他线程观察当前线程,所有操作是无序的
- 不太理解
相关文章
- 04-10Java并发之volatile关键字内存可见性问题
- 04-10多线程的共享变量的内存不可见性
- 04-10Java内存模型
- 04-10zw版【转发·*nvp系列Delphi例程】.NET调用HALCON COM控件内存释放模式
- 04-10MKMapView的内存释放问题
- 04-10STL 内存释放
- 04-10关于vector的内存释放问题
- 04-10Android Monkey 脚本编写与检查内存泄露
- 04-10用r绘制可靠性数据的Kaplan Meier estimate并用Weibull分布近似进行模型诊断
- 04-10java进程,线程,守护线程,线程同步,死锁,生产者消费者模型,创建线程池4种方法