我想知道为什么“新线程(new thread()”,“字符串”;'''正在正确运行



此代码在没有任何登录或语法错误的情况下运行正确;为什么?

故意未实现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()方法的实现,因此默认一个正在执行,

最新更新