说说 sleep() 方法和 wait() 方法区别和共同点?
时间: 2024-03-27 17:42:04 浏览: 54
Java中sleep()与wait()的区别总结
`sleep()` 方法和 `wait()` 方法都可以让线程暂停执行,但是它们的作用和使用方式有所不同。
区别:
1. `sleep()` 方法是 `Thread` 类的静态方法,它可以让当前线程暂停一段时间,但是不会释放锁资源;`wait()` 方法是 `Object` 类的方法,它可以让当前线程暂停执行,并释放锁资源,使其他线程可以访问该对象。
2. `sleep()` 方法不需要被唤醒,它会在指定的时间后自动唤醒;`wait()` 方法需要被其他线程调用 `notify()` 或 `notifyAll()` 方法来唤醒等待该对象锁的线程。
3. `sleep()` 方法可以在任何地方使用,而 `wait()` 方法只能在同步代码块或同步方法中使用。
共同点:
1. `sleep()` 方法和 `wait()` 方法都可以让线程暂停执行。
2. `sleep()` 方法和 `wait()` 方法都可以用来调整线程执行的顺序和优先级。
总之,`sleep()` 方法和 `wait()` 方法虽然都可以让线程暂停执行,但是它们的作用和使用方式有所不同,需要根据具体的需求来选择合适的方法。
阅读全文