多线程中的volatile关键字

观下面链接:
http://www.importnew.com/24082.html

在使用volatile时,需要注意的是,volatile保证了可见性但是并不保证原子性
在下面的博客中有测试代码:
https://www.cnblogs.com/carlos-liye/p/6693043.html

https://www.cnblogs.com/panxuejun/p/5957081.html

要在多线程中使用volatile关键字,必须满足以下两点:
1、对变量的写入操作不依赖当前值
      不满足:number++、count=count*5等
      满足: boolean变量 等
2、该变量没有包含在具有其他变量的不变式中
      不满足:不变式 low

在日常使用中以上两点是经常有可能不满足的,所以在解决多线程可见性问题上,volatile没有synchronized用的普遍



你可能感兴趣的:(多线程,volatile,java)