gpt4 book ai didi

java - 为什么我的线程不同时启动? java

转载 作者:行者123 更新时间:2023-12-04 15:53:34 25 4
gpt4 key购买 nike

我有可变数量的线程用于并行下载。我用过这个,

for(int i = 0; i< sth; i++){
thrList.add(new myThread (parameters));
thrList.get(i).start();
thrList.get(i).join();

我不知道为什么,但他们等待对方完成。使用线程时,我应该得到混合打印输出,因为此时有多个线程运行该代码。但是,当我将它们打印出来时,它们总是按顺序排列,一个线程等待前一个线程先完成。我只希望他们加入主线程,而不是互相等待。我注意到当我在并行下载时测量时间。

我该如何解决这个问题?他们为什么要按顺序进行?

在我的 .java 中,有带运行的 MyThread 类,有带静态方法和变量的下载器类。他们会是这件事的原因吗?静态方法和变量?

我该如何解决这个问题?

最佳答案

您正在创建一个线程,等待它完成(加入),创建一个新线程,等待它完成(加入)等等。

您应该阅读有关线程的 Java 文档以了解大多数方法的作用: http://download.oracle.com/javase/tutorial/essential/concurrency/index.htmlhttp://download.oracle.com/javase/6/docs/api/java/lang/Thread.html

关于java - 为什么我的线程不同时启动? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4541268/

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