Thread.sleep and object.wait
本问题已经有最佳答案,请猛点这里访问。
两者都试图做相似的事情,这对线程有一定的影响。
我知道thread.sleep是让当前线程休眠,wait可以让任何线程等待,如果它们试图获取对象的锁。
问题是,大多数时候他们都在做类似的事情——是什么让你选择一个而不是另一个?
不,
主要区别在于
睡眠和等待看起来是决定性的,它们有很多不同:
睡眠-让线程在给定的时间内睡眠-有利于安排任务、动画等…
等待-通常不受时间限制地使用,使一个线程等待某个对象,这是同步的最佳实践。
如果你试图通过睡眠来实现等待,那是一种糟糕的做法,这有点接近于一种非常糟糕的事情,叫做忙着等待。
这两种方法的作用非常不同:
两者都只能使当前线程休眠。另外,
一个用于同步线程,另一个用于休眠给定的时间。
如果要同步线程,请用户等待/通知。如果您想睡眠一段已知的时间,请使用thread.sleep。