运行将从main方法开始,如果在某些方法中我使用this.wait()而没有synchronized块,它将抛出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();
}
}
Run Code Online (Sandbox Code Playgroud)
Object.wait
不是"等这么久".它是"等待其他一些线程做某事".采用参数的形式是"等待其他一些线程做某事,但在这么久之后就会感到无聊并停止".您需要保持对象的锁定以确保与线程正确同步,该线程将通知您正在等待的事情已完成.在单线程上下文中使用该方法没有意义.
如果你只想等一段时间,那Thread.sleep
就是你想要的方法.
归档时间: |
|
查看次数: |
95 次 |
最近记录: |