gpt4 book ai didi

java - 返回 volatile 变量的函数是否需要同步?

转载 作者:搜寻专家 更新时间:2023-10-31 19:51:45 26 4
gpt4 key购买 nike

setGameState()getGameState() 可以从不同线程调用。 m_gameState 是易变的,因此它的值/变化可能对其他线程可见。

问题:函数是否需要同步,或者变量上的 volatile 是否足够?

private volatile EGameState m_gameState;

public void setGameState(EGameState a_gameState) {
m_gameState = a_gameState;
}

public EGameState getGameState() {
return m_gameState;
}

最佳答案

对 volatile 变量的访问就好像它是同步的一样。

访问volatile变量永远不会持有锁,不适合我们想把read-update-write作为原子操作的情况。这里需要使用synchronized block。

对于其他情况,如果您不使用同步(如正常的获取和设置)就足够了

关于java - 返回 volatile 变量的函数是否需要同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54844625/

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