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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Ideality_hunter/article/details/80690630

多线程中,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



博主设置当前文章不允许评论。

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭