.之间有什么区别?
Thread.currentThread().sleep(time)和
Thread.sleep(time);还有一件事是,在没有使用线程类的情况下,我可以延迟程序的任何其他方法。
发布于 2010-07-24 23:47:51
Thread.sleep()是一种静态方法。调用Thread.sleep()和调用Thread.currentThread().sleep()没有区别。但是,如果使用eclipse,则在以非静态方式访问静态方法way ()时,后一种表单应该会给您一条警告消息。
TimeUnit.sleep()是Thread.sleep()的一个极好的替代方案。我个人更喜欢这样做,因为在大多数情况下,我想要睡上整整几秒钟,而且我可以轻松而清晰地使用TimeUnit.SECONDS.sleep(5),而不是Thread.sleep(5*1000)或Thread.sleep(5000)。
编辑:还有另一种选择,但它根本不是一个理想的选择。调用Object.wait()将以类似于Thread.sleep()的方式停止执行。但是,这样做是不明智的,因为首先必须使用synchronize(Object),此方法用于等待/通知线程同步。此外,也不能保证线程将等待指定的全职时间,因为Object.wait()的虚假唤醒对于JVM实现来说是可以接受的。
发布于 2010-07-24 17:02:19
1-它们是一样的。
2- Thread.sleep是在Java中延迟的唯一方法,除非您实现了自己的方法;)
https://stackoverflow.com/questions/3325942
复制相似问题