gpt4 book ai didi

java - 运行和启动线程之间的区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:58:54 25 4
gpt4 key购买 nike

<分区>

我不明白启动和运行线程之间的区别,我测试了这两种方法并且它们输出相同的结果,首先我使用了 run() 的组合并在同一个线程上启动并且它们执行相同的功能如下:

public class TestRunAndStart implements Runnable {
public void run() {
System.out.println("running");
}
public static void main(String[] args) {
Thread t = new Thread(new TestRunAndStart());
t.run();
t.run();
t.start();
}

输出是:

running
running
running

然后我看到 run() 方法的 javadoc 说:如果此线程是使用单独的 Runnable run 对象构造的,则调用该 Runnable 对象的 run 方法;否则,此方法不执行任何操作并返回,因此我尝试使用 run() 方法而不使用单独的可运行对象,如下所示:

public class TestRun extends Thread {
public void run(){
System.out.println("Running Normal Thread");
}
public static void main(String[]args){
TestRun TR=new TestRun();
TR.run();
}

}

它还执行 run() 方法并打印 Running Normal Thread 尽管它是在没有单独的可运行对象的情况下构建的!那么这两种方法之间的主要区别是什么

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com