gpt4 book ai didi

java - volatile关键字没有用 当使用synchronized时?

转载 作者:行者123 更新时间:2023-11-30 03:03:57 24 4
gpt4 key购买 nike

我试图了解 java 中 volatile 关键字的使用。我知道它将把数据写入主内存而不是线程缓存中。

但这真的有用吗?我正在使用多线程并且

我不应该使用同步,因为我不想对其他线程进行脏读。那么,到底在什么情况下 volatile 是有用且最重要的呢?

请举一些例子。

最佳答案

synchronized 比普通的 volatile 昂贵得多。

volatile 当您只需要读/写单个变量而不关心复杂结构的原子性时非常有用。

当您需要执行复杂操作、更新多个变量或在比较另一个变量时设置一个变量并确保此类操作的原子性时,

synchronized 非常有用。它还用于执行更高级别的同步(例如条件同步),即 java 中的 synchronized/wait/notify 。但对于该 Lock/Condition 也可以使用。

关于java - volatile关键字没有用 当使用synchronized时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35264631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com