thread.sleep() 和thread.wait()的区别
时间: 2023-09-14 07:14:09 浏览: 103
多线程sleep,yield,wait区别
`Thread.sleep()` 和 `Thread.wait()` 都可以被用来暂停线程的执行。
`Thread.sleep()` 会暂停当前线程的执行,让出 CPU 时间给其它线程执行。它的参数代表需要暂停的时间长度,单位为毫秒。当暂停时间结束后,当前线程会重新进入到就绪状态。
`Thread.wait()` 会暂停当前线程的执行,并且释放当前线程所持有的锁,使得其它线程可以获得该锁并执行。它的参数代表需要等待的时间长度,单位为毫秒。当等待时间结束后,当前线程会重新进入到就绪状态,并尝试重新获取之前的锁。
因此,`Thread.wait()` 通常被用于多线程之间的协作,例如等待某个条件满足后再执行某些操作,而 `Thread.sleep()` 则主要被用于时间的控制,例如定时执行某些操作。
阅读全文