免费注册

sleep() 和 wait() 区别

Java 多线程 sleep wait
49
1

最佳答案

sleep()
线程主动放弃 CPU,使得线程在指定的时间内进入阻塞状态,不能得到CPU 时间,指定的时间一过,线程重新进入可执行状态。典型地, sleep() 被用在等待某个资源就绪的情形:测试发现条件不满足后,让线程阻塞一段时间后重新测试,直到条件满足为止。

wait()
通常与 notify() 配套使用, wait() 使得线程进入阻塞状态,它有两种形式,一种允许指定以毫秒为单位的一段时间作为参数, 另一种没有参数, 当指定时间参数时对应的 notify() 被调用或者超出指定时间时线程重新进入可执行状态, 后者则必须对应的 notify() 被调用。

撰写更好的答案