首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Thread.currentThread().sleep(时间) v/s Thread.sleep(time);

Thread.currentThread().sleep(时间) v/s Thread.sleep(time);
EN

Stack Overflow用户
提问于 2010-07-24 16:47:15
回答 2查看 18.6K关注 0票数 10

可能重复: Thread.currentThread().sleep(x)与Thread.sleep(x)

.之间有什么区别?

代码语言:javascript
复制
Thread.currentThread().sleep(time)

代码语言:javascript
复制
Thread.sleep(time);

还有一件事是,在没有使用线程类的情况下,我可以延迟程序的任何其他方法。

EN

回答 2

Stack Overflow用户

发布于 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实现来说是可以接受的。

票数 10
EN

Stack Overflow用户

发布于 2010-07-24 17:02:19

1-它们是一样的。

2- Thread.sleep是在Java中延迟的唯一方法,除非您实现了自己的方法;)

票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3325942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档