我正在学习,我在示例测试中看到了以下内容。 我不太清楚为什么下面的代码打印“第一”。线程名称和调用运行方法两次
当我调试它看起来MyRunnable.run被调用两次。 这是否意味着run方法在其他场景中总是被调用两次?
public class currentThreadName {
public static void main(String[] args) {
Thread.currentThread().setName("First");
MyRunnable mr = new MyRunnable("MyRunnable");
mr.run();
}
}
class MyRunnable implements Runnable {
MyRunnable(String name) {
new Thread(this, name).start();
}
public void run(){
System.out.println(Thread.currentThread().getName());
}
}
Thnx但为什么“Frist”总是先打印或在“MyRunnable”打印之前打印?是真的,当
被称为我们不知道什么时候会得到执行?因为JVM不保证任何东西 – user3431327 2014-10-29 20:13:47“First”首先打印,因为它在代码的其余部分之前执行。你的第二个陈述是正确的,如果两个线程同时存在,它不能保证哪个将首先运行。 – FunctionR 2014-10-29 20:21:15