gpt4 book ai didi

java - Java 同步方法

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

我有一个关于线程之间同步的问题。

确实,我有一个只读取静态变量的方法。有些线程访问该变量,但没有写入,只有读取。

我必须声明方法 Synchronized 吗?

最佳答案

您不需要使您的方法同步,但如果您从多个线程使用某些变量(静态或非静态),则应该有一个同步机制。

  • 如果您只初始化变量一次,那么只需确保 safe publication 就可以了。 .

    • 如果初始化可以很活泼,您应该使用经过充分验证的习惯用法,例如双重检查锁定(正确编写)或按需初始化。
  • 如果预计偶尔会对变量进行写入,则应消除数据争用的机会。您应该确保写入的原子性以及这些写入对读者的可见性。

    • 实现此目的的一种常见方法是通过 synchronized 方法编写,使变量 volatile ,并且如果变量是复杂对象,请确保安全发布它的领域。

关于java - Java 同步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36078630/

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