同步机制:volatile
特点:可见性;不具备原子性
每个线程有自己单独的内存;如果线程1和线程2公用一个变量name;如果两个线程并发进行,并且需要访问变量name;如果这个变量具有了可见性,线程1和线程2就可以获取到实时的变量name的最新数据;
下边这篇博客的结论说明了 volatile并不适合使用在并发当中,不能解决安全性问题
http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html
安全使用volatile的模式一:状态标志
public class HelloWorld { public static void main(String[] args) { TimeDemo.runTime(); } }
public class ThreadTest { public static volatile boolean FLAG = true; public Thread Thread1(){ Thread thread = new Thread(new Runnable() { @Override public void run() { Task.ASTAT = false; } }); return thread; } public Thread Thread2(){ Thread thread = new Thread(new Runnable() { @Override public void run() { System.out.print("线程2获得状态AStat=" + Task.ASTAT); } }); return thread; } }
线程2中可以获取到线程1更改的数据;这个例子写的确实不太好啊;偶然性太大;
先记录,在修改吧