线程方法wait和sleep的区别

wait和sleep这两个方法都可以让线程暂停执行,而且都有InterruptedException的异常说明,那么他们的区别是什么呢?

  • wait是Object的成员方法,而sleep是Thread的静态方法。
    • 只要是作为锁的对象都可以在同步代码块中调用自己的wait方法,sleep方法Thread的静态方法,表示的是让当前线程休眠指定的时间。
  • 调用wait方法需要先获得锁,而调用sleep方法是不需要的。
  • 调用wait方法的线程需要用notify/notifyAll来唤醒,而sleep必须设置超时值。
  • 线程在调用wait方法之后会先释放锁,而sleep不会释放锁

猜你喜欢

转载自www.cnblogs.com/meteor12138/p/9500560.html