我想知道为什么'新线程(新线程(),"字符串");'运行正常

时间:2016-06-20 19:00:18

标签: java multithreading

此代码运行正常,没有任何登录或语法错误;为什么呢?

故意没有实施run()方法。

public class Sample {
    public static void main(String[] args) {
        Thread thread = new Thread(new Thread(),"Name");
        thread.start();
    }
}

2 个答案:

答案 0 :(得分:1)

run()中的Thread为空,但仍然存在。你启动线程,它没有任何关系(由于没有run()方法可用逻辑),它将完成。您的示例提供了Thread Runnable参数的实例。

语法是正确的,但自然没有程序会启动空线程,所以这是一个逻辑错误。

答案 1 :(得分:0)

如果你看一下Thread类的实现,它有一个默认的run()方法,如下所示,     @覆盖     public void run(){         if(target!= null){             target.run();         }     }

它显示了target是否为null然后什么都不做并完成方法调用,同样的情况发生在你的代码中,你没有提供run()方法的任何实现,因此默认的一个正在执行,