sleep() 和wait() 有什么区别? 【基础】
时间: 2024-06-05 19:11:51 浏览: 89
sleep() 和wait() 都是用于控制线程的执行的,但是它们有不同的作用和使用方式。
sleep() 是一个静态方法,可以让当前正在执行的线程暂停一段时间(以毫秒为单位),然后再继续执行。在这个时间内,线程会释放 CPU 资源,让其他线程有机会执行。sleep() 的主要作用是让线程等待一段时间,而不是等待某个条件的出现。
wait() 是一个非静态方法,它可以让一个线程暂停执行,等待其他线程执行完一些操作后再继续执行。在调用 wait() 方法时,线程会释放锁并进入等待状态,直到其他线程调用 notify() 或 notifyAll() 方法来唤醒它。wait() 的主要作用是等待某个条件的出现,例如等待某个共享变量的值发生变化。
所以,sleep() 和 wait() 的主要区别在于,sleep() 将线程暂停一段时间,而 wait() 则将线程暂停并等待其他线程的唤醒。此外,wait() 必须在同步块中调用,而 sleep() 则没有这个限制。
阅读全文