Java并发编程的艺术(五)Java内存模型

时间:2023-01-08 18:02:09

1、并发编程模型的两个关键问题:线程之间的通信同步

 

2、并发线程模型有两种:

(1)共享内存:线程之间有公共状态,通过读-写内存中的公共状态进行隐式通信显示同步

(2)消息传递:线程之间没有公共状态,必须通过发送消息进行显示通信,隐式同步

 

3、Java的并发采用共享内存模型,线程间的通信总是隐式进行,整个通信过程对程序员完全透明。

 

4、Java中堆内存存储的共享变量(实例静态数组元素)在线程之间共享,局部变量方法定义参数异常处理器参数不会共享(也就不存在内存可见性问题)。

 

6、Java内存模型(JMM):线程之间的共享变量存储在主内存中,另外每个线程都有一个私有的本地内存,本地内存存储了共享变量的副本(本地内存是一个抽象概念,并不真实存在,涵盖了缓存、寄存器以及其他的硬件和编译器优化)。JMM通过控制主内存与每个线程的本地内存之间的交互,来为Java程序员提供内存可见性保证。