当前位置:   article > 正文

面试:sleep 和 wait

面试:sleep 和 wait

一、共同点

wait(),wait(long)和sleep(long)的效果都是让当前线程暂时放弃CPU的使用权,进入阻塞状态

二、不同点

1、方法归属不同

  • sleep(long)是Thread的静态方法
  • 而wait(), wait(long)都是Object的成员方法,每个对象都有

2、醒来的时机不同

  • 执行sleep(long)和wait(long)的线程都会在等待相应毫秒后醒来
  • wait(long)和wait()还可以被notify唤醒,wait()如果不唤醒就一直等下去
  • 它们都可以被打断唤醒,sleep使用线程的interrupute()

3、锁特性不同

  • wait方法的调用必须先获取wait对象的锁,而sleep 则无此限制
  • wait方法执行后会释放对象锁,允许其它线程获得该对象锁(我放弃,但你们还可以用)
  • 而sleep如果在synchronized代码块中执行,并不会释放对象锁(我放弃,你们也用不了)


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/470438
推荐阅读
相关标签
  

闽ICP备14008679号