Java语言提供了一种稍弱的同步机制:volatile变量
作用:
1:当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。
2:volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方
常见应用:
数绵羊:
volatile boolean asleep;
...
while (!asleep)
countSomeSheep();
检查某个状态标记以判断是否退出循环,当asleep变量被另一个线程修改时,执行判断的线程可以及时发现。