线程中sleep()与wait()有什么不同之处?
下文笔者讲述多线程开发中,常使用的sleep()与wait()的区别,如下所示:
sleep简介
sleep是Thread中的方法
wait简介
wait()是Object基类中的方法
sleep简介
sleep是Thread中的方法
调用此方法后,线程暂停
让出CPU
但是不释放锁
wait简介
wait()是Object基类中的方法
当调用次方法必须让当前线程拥有此对象的monitor(即锁)
运行之后线程阻塞,让出CPU, 同时也释放锁
等待期间不配拥有CPU执行权,
必须调用notify/notifyAll方法唤醒
(notify是随机唤醒) 唤醒并不意味着里面就会执行
而是还是需要等待分配到CPU才会执行
从以上的简介中,我们可以得出sleep和wait的区别: 1.所属类不同 2.线程等待后,是否释放锁上存在区别 3.唤醒方式不同
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。