gpt4 book ai didi

java - getter 上的 volatile 和 setter 上的同步是否与两者上的同步相同?

转载 作者:行者123 更新时间:2023-12-02 04:48:44 25 4
gpt4 key购买 nike

在并发程序中,这样安全吗:


private volatile int i;

public int getI() {
return i;
}

public synchronized incrementI() {
i++;
}

根据我对 synchronize 的了解,这些更改保证仅适用于在同一对象上获取锁定监视器的线程。所以我认为,上面的代码并不安全。如果属实请确认,否则请解释。谢谢。

最佳答案

这段代码是线程安全的。同步方法内的更改将传递到所有线程。由于您已将其设置为 volatile ,因此所有线程都不会缓存它,因此将获得最新的副本。

这个帖子也会有帮助 Java volatile modifier and synchronized blocks

关于java - getter 上的 volatile 和 setter 上的同步是否与两者上的同步相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29445638/

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