gpt4 book ai didi

java - 不稳定的使用会降低性能吗

转载 作者:行者123 更新时间:2023-11-30 06:01:33 25 4
gpt4 key购买 nike

当我遇到这样的说法时,我正在阅读有关 volatile 的内容,即使用 volatilesynchronize 关键字会降低整体性能,因此使用以下代码来创建单例类

public enum Singleton {
INSTANCE
}

最好创建一个包含 volatile 实例和返回该静态实例的同步方法的单例类。

尽管这两个类都是线程安全的并且给出相同的期望结果。除了代码可读性之外,使用枚举还有任何性能优势吗?

最佳答案

也许 volatile 并没有像你想象的那样做。您的问题文本看起来像是在询问在多线程环境中安全发布单例的两种不同方法。但是,这不是 volatile 的用途。 volatile 解决了一个更普遍的问题。

如果需要在不同线程之间共享变量,则可以将变量声明为 volatile ,但不需要与任何其他变量同步 volatile 声明确保任何时候线程查看变量时,它总是会看到分配给它的最新值,即使该值是由其他线程分配的。

是的。 volatile 的成本很高。当你不需要它时使用它会是一个错误(例如,在未共享的变量上使用它会是一个错误,在已经共享的变量上使用它也会是一个错误)通过其他方式保护。)

关于java - 不稳定的使用会降低性能吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52187250/

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