在使用多线程时,我对Thread.sleep()有疑问。如果多线程允许并发执行,那么Thread.sleep()的用途是什么。据我所知,Thread.sleep()将当前线程挂起一段时间,并允许其他线程执行。但是,如果多线程允许多个线程同时运行,为什么要使用Thread.sleep()?我之所以这么问,是因为我在多线程程序中使用Thread.sleep()看到了很多示例代码。
答案 0 :(得分:1)
如果您只想给其他线程一个执行的机会,则无需执行任何操作,它会自动发生。
如果您希望线程在给定的时间内不执行任何操作,则可以致电Thread.sleep()
,也许是因为您想要某种特定的计时行为,或者您想在检查某种条件之前等待一段时间(例如,新数据到达)。 [还有其他可能的方法,例如Timer
类。]
Thread.sleep()
的副作用是,一个线程争夺CPU的竞争较少,因此其他线程可以获得更大的份额。