我在Thread中编写了一个基本代码,我得到的输出非常令人惊讶.
public class ThreadImp implements Runnable{
public static void main(String[] args) {
ThreadImp threadImp = new ThreadImp();
Thread t =new Thread(threadImp);
t.setName("Fred");
t.start();
threadImp.run();
t.run();
}
public void run(){
System.out.println("Current Thread: "+ Thread.currentThread());
}
}
Run Code Online (Sandbox Code Playgroud)
我期待的输出是它将打印
当前线程:线程[main,5,main]
当前线程:线程[Fred,5,main]
当前线程:线程[main,5,main]
这个结果我可以理解,我只创建了一个线程,即Thread Fred.其他两个run方法调用就像调用普通方法一样.
但我无法理解的是,当我执行相同的程序时,我得到以下输出.所以任何人都可以向我解释为什么它会像这样.
当前线程:线程[main,5,main]
当前线程:线程[Fred,5,main]