sleep和wait有什么区别的三种解释,Java中wait和sleep方法的描述正确的是
如何解决写爬虫IP受阻的问题?立即使用。
sleep:
sleep方法属于Thread类中的方法,意思是将一个线程置于睡眠状态,等待一定时间后,自动唤醒并进入runnable状态,而不是立即进入running状态,因为线程调度机制恢复线程的运行需要时间。线程对象调用sleep方法后,不会释放它持有的所有对象锁,所以不会影响其他进程对象的运行。但是,在睡眠过程中,它的interrupt()可能会被其他对象调用,从而导致InterruptedException。如果你的程序没有捕捉到这个异常,线程将异常终止并进入终止状态。如果您的程序捕获到这个异常,程序将继续执行catch语句块(最终可能是语句块)和后续代码。
wait:
Wait属于对象的成员方法。一旦对象调用了wait方法,就必须使用notify()和notifyAll()方法来唤醒进程。如果一个线程拥有一个或一些对象的同步锁,在调用wait()后,该线程将释放它持有的所有同步资源,而不仅仅是调用wait()方法的对象。wait()方法也会由其他对象在等待过程中调用interrupt()方法生成。
sleep和wait方法的区别是:
sleep来自线程类,wait来自对象类。
sleep方法不释放锁,wait方法释放锁,以便其他线程可以使用同步控制块或方法。
wait、notify和notifyAll只能在同步控制方法或同步控制块中使用,而sleep可以在任何地方使用。
sleep必须捕捉异常,而wait、notify和notifyAll不需要捕捉异常。
推荐:java视频教程以上是Java中等待和睡眠的区别。更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。