wait与sleep区别
时间: 2023-03-27 12:00:49 浏览: 101
wait 和 sleep 都是用于控制程序执行流程的函数,但它们的作用不同。wait 是用于等待子进程结束并获取其状态,而 sleep 是用于让当前进程暂停一段时间。具体来说,wait 函数会阻塞当前进程,直到有子进程结束并返回状态信息,而 sleep 函数会让当前进程暂停一段指定的时间,然后再继续执行。
相关问题
wait和sleep区别
`wait()` 和 `sleep()` 都是线程的方法,但是它们的作用是不同的。
`wait()` 方法是线程之间的通信工具,它会使当前线程等待,直到其他线程调用了相同对象上的 `notify()` 或 `notifyAll()` 方法。在等待过程中,该线程会释放对象锁,允许其他线程访问该对象。一般来说,`wait()` 方法必须在同步块或同步方法中调用。
`sleep()` 方法则是让当前线程暂停执行一段时间,不会释放任何锁。该方法可以用于模拟耗时操作或者控制线程的执行速度。
总的来说,`wait()` 是线程之间的协作工具,`sleep()` 是控制线程自身执行的工具。
java中wait和sleep的区别_java wait和sleep的区别是什么
Java中的`wait()`和`sleep()`方法都可以使线程暂停执行一段时间,但它们的作用有所不同。
首先,`wait()`方法是Object类中的方法,而`sleep()`方法是Thread类中的静态方法。
`wait()`方法用于线程间的协调,它会使当前线程进入等待状态,直到其他线程调用相同对象的`notify()`或`notifyAll()`方法唤醒该线程。在调用`wait()`方法时,线程必须先获得该对象的锁,否则会抛出`IllegalMonitorStateException`异常。
`sleep()`方法用于线程的暂停,它会使当前线程暂停执行指定的时间,然后继续执行。在调用`sleep()`方法时,线程不会释放它所持有的任何锁。
因此,`wait()`方法用于线程间的通信和协调,而`sleep()`方法用于线程的暂停。
阅读全文