http://www.ibm.com/developerworks/cn/java/j-jtp06197.html
http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html
http://www.infoq.com/cn/articles/java-memory-model-4/
概述
修饰变量!
Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。
volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。
Volatile 变量
Volatile 变量具有 synchronized 的可见性特性(读),但是不具备原子特性。线程能够自动发现 volatile 变量的最新值。(用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最新值)