私は並列ダウンロードに使用されるスレッドの数が可変です。私はなぜ知らないが、彼らが完了するまでにお互いを待つスレッドが同時に起動しないのはなぜですか? Java
for(int i = 0; i< sth; i++){
thrList.add(new myThread (parameters));
thrList.get(i).start();
thrList.get(i).join();
}
、これを使用していました。スレッドを使用しているときは、すぐにそのコードを実行するスレッドがいくつかあるので、私は混在したプリントアウトを取得することになっています。しかし、私がそれらをプリントアウトすると、それらは常に順番になり、1つのスレッドは前のものが最初に終了するのを待ちます。私は、彼らがお互いを待つのではなく、メインスレッドに参加したいだけです。私は並行してダウンロード中に時間を測定したときに気づいた。
どうすればこの問題を解決できますか?なぜ彼らはそれを順番にやっているのですか?
私の.javaには、 があります。実行中のMyThreadクラスがあり、静的メソッドと変数を持つDownloaderクラスがあります。彼らはこれの原因だろうか?静的メソッドと変数
この問題を解決するにはどうすればよいですか?
これはお互いの権利を待つことはありませんか?私の場合でも、join()ループを分離した後でさえも同じことが起こります。 – Ada
MyRunnableとパラメータiの関係を知りません。それは私のmyThreadですか? – Ada
"ExecutorServiceの型のメソッドinvokeAll(Collection <?extends Callable>)は引数には適用されません(リスト)" –
Ada