线程中sleep()与wait()有什么不同之处?

java问题王 Java每日一问 发布时间:2021-10-22 09:48:43 阅读数:14753 1
下文笔者讲述多线程开发中,常使用的sleep()与wait()的区别,如下所示:
sleep简介

sleep是Thread中的方法
调用此方法后,线程暂停
让出CPU
但是不释放锁

wait简介

wait()是Object基类中的方法
当调用次方法必须让当前线程拥有此对象的monitor(即锁)
运行之后线程阻塞,让出CPU, 同时也释放锁
等待期间不配拥有CPU执行权,
必须调用notify/notifyAll方法唤醒
(notify是随机唤醒) 唤醒并不意味着里面就会执行
而是还是需要等待分配到CPU才会执行


从以上的简介中,我们可以得出sleep和wait的区别:
   1.所属类不同
   2.线程等待后,是否释放锁上存在区别
   3.唤醒方式不同
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaProblem/202110/1530.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者