스레드의 run() 메소드에서 매우 이상한 예외가 발생했습니다.간단한 문맥의 Java Anomaly
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는 true이지만 시스템은 아무 것도 인쇄하지 않습니다. 이것은 내가 작업하고있는 게임의 기본 클래스 인 더 큰 클래스의 일부입니다. 그러나, 이것은 완전히 난처한 상황이며 왜 이것이 작동하지 않는지 이해할 수 없습니다. if 문에 gamestarted 대신 true
을 입력하면 OK가 출력됩니다.
또한 내가 다음에 run() 메소드를 변경하는 경우, 그것은 gameStarted이 참 주어진 예상대로 정확하게 작동주의 :
public void run() {
while (true) {
System.out.print(gameStarted);
if (gameStarted)
System.out.print("OK");
}
}
더 나은 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –
컴파일 가능한 코드를 작성하십시오 – Drogba
마크 게임 '휘발성'으로 시작 하시겠습니까? – phs