gpt4 book ai didi

java - 有关Java Thread join()方法的问题

转载 作者:行者123 更新时间:2023-12-03 13:16:36 25 4
gpt4 key购买 nike

我正在编写并行计算类(class)的作业,发现了这个问题。
对于此分配,程序假设从用户那里获取整数输入,以定义他们要运行多少个线程。然后,程序将创建 N个数量的线程以同时运行。
以下是无法同时运行的伪代码。

        for(int i = 0; i < N; i ++ ) {
threads[i] = new MyThread();
threads[i].start();
threads[i].join();
}
但是,一旦我将其更改为...
        for(int i = 0; i < N; i ++ ) {
threads[i] = new MyThread();
threads[i].start();
}
for(int i = 0; i < N; i ++ ) {
threads[i].join();
}
该程序同时开始工作。
Java API仅声明join()将等待线程死亡。因此,它并没有帮助我理解为什么我的代码会如此表现。
有人可以向我解释为什么在单独的for循环中使用join()方法会使程序并发运行吗?

最佳答案

简单的:

  • 创建线程
  • 启动线程
  • 等待线程结束
  • 返回步骤1


  • 创建线程
  • 启动线程
  • 返回步骤1
  • 经过10次迭代:WAITING每个线程结束

  • 第一个版本如何同时运行?在启动第二个线程之前,您正在等待第一个线程完成,始终只有一个线程(+主线程)正在运行。

    关于java - 有关Java Thread join()方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62785352/

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