我自己很难弄清楚当前线程在此代码中的工作方式

时间:2018-11-04 16:02:41

标签: java multithreading

class MyThread extends Thread{ //
    public void run(){
        Thread t1=Thread.currentThread();
        System.out.println(t1.getName());
    }
 }
 class Demo{
    public static void main(String args[]){
        Thread t1=new MyThread();
        t1.setName("MyThread");
        t1.run();
        t1.start();
    }
 }

当它调用run()时,它会显示“ main”。为什么它不是“ MyThread”

1 个答案:

答案 0 :(得分:2)

它不是MyThread类,因为run()方法只是被调用,它仍在主线程的上下文中运行。

在调用start()之后发生调用run()之前,线程本身不会变成新线程。