sleep和wait分别是那个类的方法,有什么区别
2018-02-24 17:34
344 查看
sleep是Thread类的方法,wait是Object类的方法。
区别:
sleep方法是Thread类的静态方法,调用此方法会让当前线程暂停指定的时间,将执行机会(CPU)让给其他线程,但是不会释放锁,因此休眠时间结束后自动恢复(程序回到就绪状态)。
wait是Object类的方法,调用对象的wait方法导致线程放弃CPU的执行权,同时也放弃对象的锁(线程暂停执行),进入对象的等待池(wait pool),只有调用对象的notify或notifyAll方法才能唤醒等待池中的线程进入等锁池(lock pool),如果线程重新获得对象的锁就可以进入就绪状态。
wait只能在同步控制方法中或者同步控制块中使用,而sleep可以在任何地方使用。
区别:
sleep方法是Thread类的静态方法,调用此方法会让当前线程暂停指定的时间,将执行机会(CPU)让给其他线程,但是不会释放锁,因此休眠时间结束后自动恢复(程序回到就绪状态)。
wait是Object类的方法,调用对象的wait方法导致线程放弃CPU的执行权,同时也放弃对象的锁(线程暂停执行),进入对象的等待池(wait pool),只有调用对象的notify或notifyAll方法才能唤醒等待池中的线程进入等锁池(lock pool),如果线程重新获得对象的锁就可以进入就绪状态。
wait只能在同步控制方法中或者同步控制块中使用,而sleep可以在任何地方使用。
相关文章推荐
- Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?
- sleep()方法和wait()方法的区别是什么?
- Thread类的sleep()方法和对象的wait()方法都能使线程暂停执行,他们有什么区别?
- wait()方法和 sleep()方法的区别是什么?
- Java - Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?
- java 中的 wait()方法和 sleep()方法的区别是什么?
- java 中的 wait()方法和 sleep()方法的区别是什么?
- 线程中sleep方法和wait方法有什么区别?
- Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?
- java中的wait()方法和sleep()方法的区别是什么?| Java 基础
- sleep() 和 wait() 有什么区别?
- sleep() 和 wait() 有什么区别?
- sleep和wait有什么区别
- 一目了然,Java线程各方法区别:sleep, yield, join, wait, notify
- sleep和wait有什么区别
- java开发中sleep(1000)和wait(1000)的区别是什么
- JAVA多线程之——wait/yield/sleep/join方法的区别
- Java多线程中sleep()和wait()有什么区别
- sleep() 和 wait() 有什么区别?
- sleep和wait有什么区别