volatile

    Java - Thread에서 while문 안의 if문이 동작하지 않는 이유

    Java 스레드를 사용하던 중 while문이 제대로 동작하지 않는 경우가 발생해 이에 대해 찾아보았다. 문제가 된 코드 내가 짠 코드의 형태는 아래와 같다. if문 내에 사용한 변수는 다른 클래스의 클래스변수이다. new Thread() { @Override public void run() { while(true) { if(OtherClass.isTrue) { ... } } } } thread를 무한 루프 돌리면서 isTrue가 참이 되는 경우에만 작동하기를 원했는데 코드가 돌지 않았다. 무엇이 문제인가 싶어서 아래와 같이 System.out.println()을 넣어봤더니 제대로 동작했다. new Thread() { @Override public void run() { while(true) { Syste..