Thread.sleep和object.wait
这个问题在这里已经有了答案:
一个用于同步线程,另一个用于睡眠给定时间。
如果你想同步线程在一起,用户等待/通知。 如果你想睡一段已知的时间,使用Thread.sleep。
不, Object.wait()
只会导致当前线程阻塞。
主要区别在于sleep()
指示当前线程休眠一段时间,而wait()
指示当前线程释放一个监视器,然后休眠直至通知监视器。 换句话说, wait()
是线程之间的协调原语,而sleep()
只关心时间的流逝(假设没有中断)。
睡眠和等待看起来很容易,他们有很大的不同:
睡眠 - 使线程在特定的时间内休眠 - 适用于计划任务,动画和更多...
等待 - 大多数时间没有限制地使用,使一个线程等待某些事情发生,这是同步的最佳实践。
如果你试图通过使用睡眠来实现等待,这是不好的做法,这有点接近一些非常糟糕的事情,称为忙碌等待。
链接地址: http://www.djcxy.com/p/92133.html