java - 直接分配或通过分配进行控制

标签 java variable-assignment

我有一个游戏循环

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/

相关文章:

c# - 交换 BindingList<SomeClass> 元素需要花费大量时间,为什么会这样,我应该做什么?

java - 有没有办法在 BLE 特性中只写入一个字节?

java - spring security注销导致NullPointerException

java - Parcelable 类不会创建可分割对象

functional-programming - 在 OCaml 中保证对函数返回值的赋值

java - 在 Java 中分配迭代器返回值的高性能影响?

java - 数组等于忽略顺序

java - GWT 客户端 : Java object to json string and vice versa

Java 赋值问题——这是原子的吗?

Python模块 "twill"——变量赋值期间的HTML泛滥