欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

sleep和wait到底什么区别

发布时间:2023/11/27 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 sleep和wait到底什么区别 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

wait是在当前线程持有wait对象锁的情况下,暂时放弃锁,并让出CPU资源,并积极等待其它线程调用同一对象的notify或者notifyAll方法。注意,即使只有一个线程在等待,并且有其它线程调用了notify或者notifyAll方法,等待的线程只是被激活,但是它必须得再次获得锁才能继续往下执行。换言之,即使notify被调用,但只要锁没有被释放,原等待线程因为未获得锁仍然无法继续执行。

wait方法需要释放锁,前提条件是它已经持有锁。所以wait和notify(或者notifyAll)方法都必须被包裹在synchronized语句块中,并且synchronized后锁的对象应该与调用wait方法的对象一样。否则抛出IllegalMonitorStateException

sleep方法告诉操作系统至少指定时间内不需为线程调度器为该线程分配执行时间片,并不释放锁(如果当前已经持有锁)。实际上,调用sleep方法时并不要求持有任何锁。

转载于:https://www.cnblogs.com/paulbai/p/6156156.html

总结

以上是生活随笔为你收集整理的sleep和wait到底什么区别的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。