java中sleep方法和wait方法的五个区别

lewis 2019-01-20 20次阅读

  1. 调用方式不同:sleep方法是Thread类的静态方法,可以直接调用;wait方法是Object类的方法,需要在同步代码块中使用。

  2. 锁的释放不同:sleep方法不会释放锁,线程仍然持有锁;wait方法会释放锁,使得其他线程可以获取到锁。

  3. 唤醒方式不同:sleep方法只能通过时间到达自动唤醒;wait方法可以通过notify和notifyAll方法来唤醒。

  4. 使用场景不同:sleep方法主要用于线程暂停一段时间,不需要其他线程的协作;wait方法主要用于线程等待某个条件满足,需要其他线程的协作。

  5. 异常处理不同:sleep方法会抛出InterruptedException异常,需要进行异常处理;wait方法不会抛出异常。



发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。