我有一个游戏循环
class Game extends Runnable {
private boolean running = false;
@Override
public void run() {
running = true;
while(running) {
//...
}
}
}
我在想(在游戏循环中)在此之前使用 if
直接分配给变量或控件是否更好。例如:
x = true;
或
if(!x) x = true;
最佳答案
if (!x) x = true;
不保证x
在语句末尾为true。这是因为另一个线程可能在您测试它和绕过分配之间将 x
设置为 false
。
为了安全起见,请设置x = true
,无论如何,这样会更快。
从技术上讲,if (!x) x = true;
在 Java 中不是原子性,但 x = true
是。
关于java - 直接分配或通过分配进行控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27486621/