volatile能保证原子性,保证的是对64位long double简单赋值操作和读操作的原子性。但是复杂操作例如自增不能保证。但是你不能说没有保证自增volatile就不具有原子性,因为自增也是由3个原子性操作相加的符合操作。类比的你可以去看collections类同步synchronizedMap过后的map,他的put get remove一样是原子性的,但是如果你调用两个原子性操作就会出错。比如containsKey之后进行remove,并发时会出错的。
点赞 评论

相关推荐

11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
牛客网
牛客企业服务