我在线程的 run() 方法中遇到了一个非常奇怪的异常。
public class project extends JApplet implements KeyListener, MouseListener, MouseMotionListener, ActionListener, Runnable {
private boolean gameStarted;
public void init() {
gameStarted = true;
new Thread(this).start();
}
public void run() {
while (true) {
if (gameStarted)
System.out.print("OK");
}
}
}
变量 gameStarted 为真,但系统不会打印任何结果。这是一个更大的类的一部分,它是我正在开发的游戏的基类。然而,这让我完全被难住了,我不明白为什么这不起作用。如果我放入 if 语句而不是 gameStarted true
,它确实打印出来了。
另请注意,如果我将 run() 方法更改为以下内容,它会完全按照预期工作,因为 gameStarted 为真:
public void run() {
while (true) {
System.out.print(gameStarted);
if (gameStarted)
System.out.print("OK");
}
}