此代码运行正常,没有任何登录或语法错误;为什么呢?
故意没有实施run()方法。
public class Sample {
public static void main(String[] args) {
Thread thread = new Thread(new Thread(),"Name");
thread.start();
}
}
答案 0 :(得分:1)
run()
中的Thread
为空,但仍然存在。你启动线程,它没有任何关系(由于没有run()
方法可用逻辑),它将完成。您的示例提供了Thread
Runnable
参数的实例。
语法是正确的,但自然没有程序会启动空线程,所以这是一个逻辑错误。
答案 1 :(得分:0)
如果你看一下Thread类的实现,它有一个默认的run()方法,如下所示, @覆盖 public void run(){ if(target!= null){ target.run(); } }
它显示了target是否为null然后什么都不做并完成方法调用,同样的情况发生在你的代码中,你没有提供run()方法的任何实现,因此默认的一个正在执行,