java基础(四) 线程(2)java内存模型

线程的三大特性:

    原子性:线程安全问题

    可见性:java内存模型

    有序性:jion wait 的方法  控制程序的流程

JAVA内存模型的概念

JMM决定一个线程对共享变量的写入何时对另一个线程可见,JMM定义了线程和主内存之间的抽象关系,线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个本地私有内存(local memory),本地私有内存中存储了共享变量的副本

java基础(四) 线程(2)java内存模型

从上图来看,线程A与线程B之间如要通信的话,必须要经历下面2个步骤:

1. 首先,线程A把本地内存A中更新过的共享变量刷新到主内存中去。

2. 然后,线程B到主内存中去读取线程A之前已更新过的共享变量。