为什么我的输入显示一个线程在另一个线程之后执行,而不是同时执行?

2024-04-21

我研究了线程的概念,发现它就是让代码同时在两个进程中运行。不过这是我的代码

public class Connor extends Thread{

    public void run() {
        for(int i=0; i< 10; i ++){
            System.out.println("Hello " + i);
    }

    public static void main(String[] args){
        Connor runner1 = new Connor();
        Connor runner2 = new Connor();
        runner1.start();
        runner2.start();
    }
}

还有我的输出https://i.stack.imgur.com/7reYP.jpg https://i.stack.imgur.com/7reYP.jpg

看起来两个线程确实同时启动(单独的进程,如两个前导 0 所示),但一个执行 (1-9),然后另一个执行 (1-9)。他们不应该也交织在一起(1,1,2,2,...)因为线程都打印到控制台。我研究发现 start 是正确的方法,因为它告诉线程类在另一个线程中执行 run 方法?谁能解释为什么我得到这个输出?


假设您有十件事需要做,而您姐姐有十件事需要做,而您只有一辆车。每次办完事后你会把车开回来并更换司机吗?当然不是。这将是极其低效的。每个线程基本上只需要输出流。因此,将它们紧密地交织在一起是荒谬的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的输入显示一个线程在另一个线程之后执行,而不是同时执行? 的相关文章

随机推荐