Java:关于Thread.sleep()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java:关于Thread.sleep()相关的知识,希望对你有一定的参考价值。

如果一个线程是通过实现Runnable实现的,为什么需要使用Thread.currentThread().sleep()而不能使用Thread.sleep()呢?

您好,提问者:
Thread.currentThread()是获取当前线程。
而Thread.sleep()的是创建一个线程,因为Runnable本身就是一个线程。追问

Thread.sleep()和Thread.currentThread().sleep()的有什么区别?

答案说的是:如果一个线程是通过继承Thread实现的,则暂停需要使用Thread.sleep(),如果一个线程是通过实现Runnable接口实现的,则暂停需要使用Thread.currentThread().sleep(),但是我没看出来为什么必须这么用,您明白我得意思吗?

追答

靠。比如有一个线程,你要得到当前的线程就用Thread.currentThreand.大哥,你是不是没用过Runnable接口啊

参考技术A 俩函数都能运行,后者实际上还是调用的前者。
我已经做过测试,没有区别。
参考技术B Thread.sleep()可能是当期开启的线程都会休眠,而Thread.currentThread().sleep()是说当前运行的线程会休眠,程序执行,当然不是所有的线程都停了,停了还运行个啥啊。。。。

隐藏 Thread.sleep

隐藏 Thread.sleep 无聊随便写写不做任何用途 实现原理: 1.反射调用Thread.sleep方法 2.把 Class.forName("java.lang.Thread ") 中的字符串 java.lang.Thread 换成ascii码 3.使用int数组来装,同时把ascii码转

以上是关于Java:关于Thread.sleep()的主要内容,如果未能解决你的问题,请参考以下文章

C#关于在返回值为Task方法中使用Thread.Sleep引发的思考

java 中用了thread.sleep()这个函数以后,当线程再被唤醒时,是重新执行thread.run()吗?

Java多线程java中的Sleep方法

Thread.sleep() 实现

关于JAVA里的加锁synchronized

关于线程的synchronized,wait,sleep,notify的一段有趣的代码