1

サーバーにリクエストを送信し、レスポンスを返すJavaアプリケーションがあります。リクエストはそれぞれ別々のスレッドで実行されます。

私がやりたいのは、一度に5つのスレッドを維持することです(したがって、一度に5つのリクエストが実行されます)。また、スレッドが終了したら、常に5つのスレッドが実行されるように、新しいスレッドを開始したいと思います。

当初、スレッドを呼び出すときにjoinを使用できると思っていましたが、メインスレッドがブロックされることに気付きました。

これを行う方法はありますか?私はJavaであまりプログラミングしておらず、提案やアドバイスを受け入れています。

4

3 に答える 3

7

ExecutorService を使用します

Executor exec = Executors.newFixedThreadPool(5);

for(String url: urls) 
   exec.submit(new UrlTask(urls));

// when finished
exec.shutdown();

これにより、一度に最大 5 つのタスクが実行されます。

于 2013-02-04T15:51:14.253 に答える
3

固定スレッドプールを備えたExecutorServiceのようなものを探しているようです。

ExecutorService  pool = Executors.newFixedThreadPool(5);
于 2013-02-04T15:50:41.407 に答える
1

を使用してゼロからこれを作成しようとするべきではありませんThread

Executorプールを設定し、プロデューサー/コンシューマーBlockingDeque.

于 2013-02-04T15:50:31.587 に答える