volatile使用场景

来源:6-1 原子类简介

Kevin7012055

2021-04-01

老师好:

我想问一下既然volatile不保证原子性,那为什么我看好多源码里还在用volatile呢?为什么不能直接用atomic原子类型呢?是因为atomic中分配堆内存和cas的cpu消耗吗?如果为了性能而用了volatile,作者不怕产生原子并发问题吗?麻烦老师解答一下,谢谢!

写回答

1回答

悟空

2021-04-01

因为atomic比volatile要重量级,如果volatile能解决问题,那就首选volatile。作者一定是判断过了这个场景使用volatile就足够了,不需要用到atomic,所以选的volatile,就比如后面会讲到的AQS里就用到了volatile。

1
0

深度解密Java并发工具,精通JUC,成为并发多面手

JUC全方位讲解,构建并发工具类知识体系

1599 学习 · 573 问题

查看课程