java线程同步中volatile关键字的使用场景
关键字volatile可以说是java虚拟机提供的最轻量级的同步机制,由于它不太容易被正确地、完整地理解,很少被人用到。但是什么时候适合用volatile呢?一般来说:当一个变量的值的修改不依赖原来的值时,就满足了volatile关键字的使用场景。
例1
private int value = 0;public void setValue(int value){this.value = value;}public int getValue(){return value;}volatile boolean shutdown;public void shutdown(){shutdown = true;}public void dowork(){while(!shutdown){ // do something}}public static int race = 0;public static void increase(){race++;}public static int getRace(){return race;}