线程的三大特性:
原子性:线程安全问题
可见性:java内存模型
有序性:jion wait 的方法 控制程序的流程
JAVA内存模型的概念
JMM决定一个线程对共享变量的写入何时对另一个线程可见,JMM定义了线程和主内存之间的抽象关系,线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个本地私有内存(local memory),本地私有内存中存储了共享变量的副本。
从上图来看,线程A与线程B之间如要通信的话,必须要经历下面2个步骤:
1. 首先,线程A把本地内存A中更新过的共享变量刷新到主内存中去。
2. 然后,线程B到主内存中去读取线程A之前已更新过的共享变量。