首页 > 编程知识 正文

有必要用volatile吗,volatile关键字的用法

时间:2023-05-06 19:53:08 阅读:145453 作者:4936

与同步关键字相比,volatile关键字不仅可以解决共享变量的内存可见性问题,而且是非块的,性能优于同步关键字。 因为同步关键字是独占锁,所以一个线程获得锁后,其他线程只需要阻止它,就会发生线程上下文切换和重新调度开销。 那么为什么volatile关键字不能代替synchronized关键字,是因为volatile关键字不能保证操作的原子性。

在什么情况下,可以使用volatile关键字而不是同步关键字来提高性能?

如果实际上不需要保证变量操作的原子性,可以将synchronized关键字替换为volatile关键字。 例如,如果将变量值写入依赖于变量的当前值,则相关操作可以分为三个步骤:获取当前变量值、计算期望值和写入期望值,而volatile关键字保证这三个操作的原子性

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。