多线程中,volatile既然对于i++这种不能保证可见性(即不能保证原子操作),但是多线程不就是针对变量进行i++操作吗?既然volatile这种都不支持,volatile还有什么存在的意义?

多线程中,volatile既然对于i++这种不能保证可见性(即不能保证原子操作),但是多线程不就是针对变量进行i++操作吗?既然volatile这种都不支持,volatile还有什么存在的意义?

他使用场景是什么样的呢?

非i++场合即可。

如1)

int volatile a=0;

public add(int b,int c){

a=b+c;

}

这种情况就可以。

因为a的值,不依赖于a。


2)更好的一个例子是:Boolean类型,这个例子很好

https://blog.csdn.net/lzx_longyou/article/details/55101653



猜你喜欢

转载自blog.csdn.net/ideality_hunter/article/details/80690630