可见性

<java并发编程实践>读书笔记二_可见性
<java并发编程实践>读书笔记二_数据_02

重排序(reordering)

<java并发编程实践>读书笔记二_数据_03

也就是main方法中可能先执行了 read=true; 然后才执行number=42;

只要数据被跨线程共享,就进行恰当的同步

<java并发编程实践>读书笔记二_main方法_04

<java并发编程实践>读书笔记二_main方法_05
<java并发编程实践>读书笔记二_可见性_06

Volatile

volatile是一种同步的弱形式,
它确保对一个变量的更新以可预见的方式告知其他的线程。
<java并发编程实践>读书笔记二_数据_07
<java并发编程实践>读书笔记二_可见性_08
<java并发编程实践>读书笔记二_跨线程_09