sleep()和wait()的区别

来源:互联网 发布:king of the hill知乎 编辑:程序博客网 时间:2024/04/28 10:03

1、sleep()是Thread类中的,wait()是Object中的,因为等待唤醒方法的调用必须通过锁对象调用,而使用的锁对象是任意对象,所以必须定义在object类中。
2、sleep()方法导致了程序暂停执行指定的时间,占用CPU该线程不工作,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。

而当调用wait()方法的时候,不占用cpu,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。

0 0
原创粉丝点击