我对静态方法有些困惑。静态方法无法访问this
引用。 (在Java中,this
是引用当前对象的引用。)
当调用Thread.sleep(millis)
时, Thread
类的静态睡眠方法如何选择要睡眠的线程? Thread.sleep(long millis)
是静态方法并且无权访问this
。
public class CurrentThreadDemo {
public static void main(String... args) {
Thread t = Thread.currentThread();
System.out.println("Current thread: " + t);
//change the name of the thread
t.setName("My thread");
System.out.println("After name change: " + t);
try {
for (int n = 5; n > 0; n--) {
System.out.println(n);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:3)
当调用Thread.sleep(millis)时,Thread类的静态sleep方法如何选择要休眠的线程。
Thread.sleep的规范是它挂起当前线程,即调用sleep
方法的线程。
答案 1 :(得分:0)
“
Thread.sleep()
方法基本上与线程交互 调度程序将当前线程置于所需的等待状态 间隔“。
答案 2 :(得分:0)
当调用Thread.sleep(millis)时,Thread类的静态sleep方法如何选择要睡眠的线程?
它选择当前线程。正在调用该方法的那个。由Thread.currentThread().
Thread.sleep(long millis)是一个静态方法,无法访问此引用变量。
我同意。所以?它不需要它。