运行将从主要方法开始,如果在某些方法中我使用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