sleep() 与 wait() 相同点:两者都可以暂停线程的执行
两者区别:
- 类的不同,sleep() 是 Thread 线程类的静态方法,wait() 是 Object 类的方法。
- 是否释放锁:sleep() 不释放锁;wait() 释放锁。
- 用途不同:wait() 通常被用于线程之间的通信;sleep() 通常被用于暂停执行。
- 用法不同:wait() 方法被调用后,线程不会自动苏醒,需要别的线程调用同一个对象上的notify() 或者 notifyall() 方法。sleep() 方法执行完成后,线程会自动苏醒,或者可以使用wait(long timeout) 超时后线程会自动配置。