java中 volatile关键字具体什么作用

我已经GOOGLE了很多文章 没有实质性的东西
谁能写个小例子 能看出加 与 不加 volatile关键字的区别。直接能看到结果的就行 感激不尽

例子之一:[url]http://ifeve.com/concurrency-visibility/[/url]

Java并发相关的东西直接上[url]http://ifeve.com/[/url]

简单说下现实中的使用,对于多线程争用的多读少改的变量就可以使用volatile。例如一个volatile boolean flag是用于对多个线程while(flag)循环的标记,一旦有一个线程要通知其余线程结束,直接去改flag为false,其余线程下一次读到的flag就是修改后的值,快速可见性。