此代码在没有任何登录或语法错误的情况下运行正确;为什么?
故意未实现Run()方法。
public class Sample {
public static void main(String[] args) {
Thread thread = new Thread(new Thread(),"Name");
thread.start();
}
}
Thread
中的 run()
是空的,但仍然存在。您启动线程,它无关紧要(由于没有可用逻辑的run()
方法),它将完成。您的示例将Thread
的实例作为Runnable
参数。
语法是正确的,但是自然没有程序会启动空线程,因此这是一个合乎逻辑的错误。
如果您查看线程类的实现,则其默认运行()方法如下 @Override public void run(){ 如果(target!= null){ target.run(); } }
它显示了目标是否为null,然后什么都不执行并完成方法调用,您的代码也发生了同样的情况,您没有提供任何run()方法的实现,因此默认一个正在执行,