주 메소드에서 실행이 시작되며 일부 메소드에서 동기화 된 블록없이 this.wait()를 사용하면 illegalStateMonitorException이 발생합니다.왜 스레드 만있는 경우 객체 모니터가 필요합니까?
스레드가 하나 뿐인데 왜 대기 할 수 없는지 여기에서 잠금을 사용해야합니다. 스레드는 다른 작업도 수행하지 않습니다. 그것은 거기서 기다릴 수있었습니다.
단일 스레드가있는 경우 왜 잠금이 필요한지 이해하지 못합니다.
public class waitSleepCheck extends Thread{
public void method() throws InterruptedException ,IllegalMonitorStateException{
this.wait(1000);
}
public static void main(String args[]) throws InterruptedException{
waitSleepCheck object = new waitSleepCheck();
object.method();
}
}
Java 명명 규칙을 따르십시오. – sanbhat
JVM은 시스템에서 얼마나 많은 스레드가 실행되고 있는지 또는 시작될 때 알 수 없으므로 ... – MadProgrammer
스레드를 잠자기 상태로 유지 하시겠습니까? 왜냐하면 [Thread.sleep] (http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#sleep (long))이 그렇게하기 때문입니다. – user2357112