Thread 类的 sleep() 方法和对象的 wait() 方法有什么区别?

  • Post author:
  • Post category:其他




分析&回答


sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复(线程回到就绪状态)。

wait()是 Object 类的方法,调用对象的 wait()方法导致当前线程放弃对象的锁(线程暂停执行),进入对象的等待池(wait pool),只有调用对象的 notify()方法(或 notifyAll()方法)时才能唤醒等待池中的线程进入等锁池(lock pool),如果线程重新获得对象的锁就可以进入就绪状态。



反思&扩展


太常见了,拎出来再溜溜。



喵呜面试助手:

一站式解决面试问题,你可以搜索微信小程序

[喵呜面试助手]

或关注

[喵呜刷题] -> 面试助手

免费刷题。如有好的面试知识或技巧期待您的共享!



版权声明:本文为jjclove原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。