为什么Java中的变量在默认情况下不是易失性的?
2022-09-04 05:00:29
可能类似的问题:
今天我正在调试我的游戏。它有一个非常困难的线程问题,每隔几分钟就会出现一次,但很难重现。因此,首先,我将关键字添加到我的每个方法中。这不起作用。然后,我将关键字添加到每个字段中。问题似乎只是自行解决。
synchronized
volatile
经过一些实验,我发现负责的字段是一个对象,它跟踪我的游戏的当前状态,可以是正在玩,也可以是忙碌的。忙碌时,游戏会忽略用户输入。我拥有的是一个不断更改变量的线程,而事件线程读取变量。但是,在一个线程更改变量后,另一个线程需要几秒钟才能识别更改,这最终会导致问题。GameState
state
state
它通过使状态变量来修复。volatile
为什么默认情况下没有Java中的变量,为什么不使用关键字的原因是什么?volatile
volatile