-2
私はウェブからコンテンツをダウンロードする場所のページがたくさんあります。各Webページは1つのスレッドで処理されます。どのようにしてJavaに言えば、一度に最大500スレッドを実行したいのですが、あるスレッドが終了したら、次のスレッドが開始され、最高のパフォーマンスが得られますか?多くのスレッドをどのように制御できますか?
私はウェブからコンテンツをダウンロードする場所のページがたくさんあります。各Webページは1つのスレッドで処理されます。どのようにしてJavaに言えば、一度に最大500スレッドを実行したいのですが、あるスレッドが終了したら、次のスレッドが開始され、最高のパフォーマンスが得られますか?多くのスレッドをどのように制御できますか?
これは、ExecutorService
とExecutors.newFixedThreadPool(500)
を使用して行うことができます。
ウェブ上でこれに関する多くのチュートリアルがあります。たとえば、thisで始まります。
https://docs.oracle.com/javase/tutorial/essential/concurrency/pools.html –
スレッドが役立たない場合は、非同期HTTPクライアントを使用して、実際のスレッド数にタスクを分割する必要があります。 –