私のコードで5つ以上のスレッドを使用しています。メインメソッドが実行されると、すべてのスレッドが最初に呼び出されます。すべてのスレッドがアクティブになったら、すべての子スレッドが停止するまでメインスレッドを停止します。メソッドを使用すると、他のすべての子メソッドも停止しています。私の場合は、メインスレッドだけを一時停止する必要があります。すべての子スレッドが完了するまでメインスレッドを待機させる方法は?
0
A
答えて
3
すべてのスレッドが既に開始してからjoin
する必要があります。すなわち:
for(int i = 0; i < numThreads; i++) {
threads[i].start();
}
だけにして:
for(int i = 0; i < numThreads; i++) {
threads[i].join();
}
以上が動作します。
0
あなたはこのためCountDownLatch
使用する必要があります。
priavte CountDownLatch;
public Worker(String name, CountDownLatch latch) {
this.name = name;
this.latch = latch;
}
public void run() {
try {
System.out.println(name + " done!");
} finally {
latch.countDown();//count down
}
}
関連する問題
- 1. メインスレッドがすべてのスレッドが完了するのを待つ方法
- 2. URLRequestが終了するまでメインスレッドを待機させます。
- 3. すべてのスレッドが完了するまで待つ方法は?
- 4. 他のスレッドがそのメソッドの実行を完了するまでスレッドを待機させる方法
- 5. メインスレッドが他のすべてのQthreadが完了するまで待ちます。
- 6. C#で非同期タスクが完了するまでメインスレッドを待機させる方法
- 7. 子スレッドが実行を完了する前にメインスレッドが終了しますか?
- 8. スレッドが別のアクティビティで完了するまでフラグメントを待機させる方法
- 9. スレッド1のスレッドが完了するまで待ちます。
- 10. スレッドを終了するかメインスレッドに参加させる方法
- 11. メインスレッドを開始した後、内部スレッドを待機させる方法は?
- 12. このスレッドをキューで待機させる方法を終了しますか?
- 13. は、iosの別のスレッドが完了するまでロック待機を同期させますか?
- 14. すべてのNSOperationsが完了するまで待つ方法は?
- 15. すべてのサブプロセスが完了するまでプロセスを待機しますか?
- 16. 他のスレッドが終了するのを待つMFCメインスレッド
- 17. ページの動的更新が完了するまでcURLを待機させる方法はありますか?
- 18. すべてのイベントリスナーが完了するまで待機します
- 19. メインスレッドがブーストスレッドを待っている(完了していない)
- 20. webViewDidFinishLoadが完了するまでの待ち合わせ方法
- 21. runOnUiThreadが完了するまで待機するタイマータスクを作成する方法
- 22. コンパイルされたコンソールコマンドラインプログラムは、すべてのスレッドが終了するのを待機しません
- 23. jQueryのフリップエフェクトが終了するまでイベントを待機させる方法は?
- 24. すべてのタイマータスクが完了するのを待つ方法は?
- 25. スレッドのリストが完了するのを待つ方法は?シングルスレッドの場合(パイソン)
- 26. Observable.Intervalはアクションが完了するまで待機します。
- 27. Ajaxはリダイレクトが完了するまで待機します。
- 28. スレッドが完了すると、メインスレッドに通知
- 29. Observableが完了するまでスレッドをロックする方法
- 30. 次のタスクを実行する前にすべてのスレッドが完了するまで待ちます
あなたはいくつかのコードに入れることはできワーカースレッドのためにメインスレッド
について
を?どのようにして結合メソッドを呼び出すのかを見たいと思います。ジョイン方法は、あなたがしたいことを達成するための最良の方法です。おそらくそれは動作しないために何か間違っている必要があります。 –
'任意のスレッドに対してjoin()メソッドを使用すると、他のすべての子メソッドもまた一時停止します.'、他のスレッドは一時停止しません。間違ったことをしたようです。 – TomN