Java中Thread.sleep()和Thread.currentThread.sleep()的区别

一个静态的,一个实例对象函数。他们两个的功能类似,不过前者调用形式会产生迷惑,他好像是暂停一个对象的thread。理解这个先解释一个问题。

类似下面的代码:

someOhterThread.sleep(x)

这个函数并不是意味着someOtherThread这个线程进入睡眠状态,而是当前正在执行的线程进入睡眠状态。


引用别人的解释:

In Java, sleep is a static method. Both your examples do exactly the same thing, but the former version is confusing because it looks like it is calling a method on a specific object but it's not doing that at all. In your example it won't matter much, but it is more dangerous if you have the following:

someOtherThread.sleep(x);

This time it looks like you are telling some other thread to sleep, but in fact you are putting the current thread to sleep. The way to avoid making this type of mistake is to always call static methods using the class rather than a specific object.

参考网址:http://stackoverflow.com/questions/2077216/java-thread-currentthread-sleepx-vs-thread-sleepx


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值