9.45. sleep 方法和 wait 方法有什么区别

发布于 2023-05-18 12:42:18 字数 444 浏览 55 评论 0

这个问题常问,sleep 方法和 wait 方法都可以用来放弃 CPU 一定的时间,不同点在于如果线程持有某个对象的监视器,sleep 方法不会放弃这个对象的监视器,wait 方法会放弃这个对象的监视器。

sleep 方法是线程的静态方法,它的作用是让当前线程进入睡眠状态,不释放锁,其参数表示睡眠的时间长度,时间到了线程会自动唤醒。

wait 方法是 Object 的方法,可以让一个线程暂时挂起,并释放它所持有的锁,让其他线程可以访问共享资源。当其他线程调用 notify 或 notifyAll 方法时,被挂起的线程会被唤醒,并继续执行。wait 方法必须在同步代码块和同步方法中使用,否则会抛出 IllegalMonitorStateException 异常。

总的来说,sleep 方法是线程的静态方法,是为了让线程暂停一段时间;wait 方法是 Object 的方法,是为了线程同步,让线程等待某个条件满足后再继续执行。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

不爱素颜

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

eins

文章 0 评论 0

世界等同你

文章 0 评论 0

毒初莱肆砂笔

文章 0 评论 0

初雪

文章 0 评论 0

miao

文章 0 评论 0

qq_zQQHIW

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文