スレッド プールは、同時タスクの実行に使用される事前に作成されたスレッドのコレクションであり、スレッドの使用を最適化し、パフォーマンスを向上させ、リソースの枯渇を防ぐことができます。具体的な使用方法には、Executors クラスを使用してスレッド プールを作成するものが含まれます。 submit() メソッドを使用してタスクを送信します。 shutdown() を使用してスレッド プールをシャットダウンし、タスクが完了するのを待ちます。 shutdownNow() を使用して、スレッド プールを直ちに終了し、実行中のタスクを中断します。
#Java スレッド プールの作成および管理ガイド
はじめに
スレッド プール同時タスクの実行に使用できる、事前に作成されたスレッドのセット。スレッドの使用を管理および最適化するメカニズムを提供し、パフォーマンスを向上させ、リソースの枯渇を防ぎます。スレッド プールの作成
Executors クラスを使用してスレッド プールを作成します:
ExecutorService threadPool = Executors.newFixedThreadPool(numThreads);where
numThreads は作成するスレッドの数です。
スレッド プールの管理
スレッド プールを作成したら、次の方法を使用して管理できます。 タスクを送信します: Use submit() メソッドを使用してタスクを送信します:
Future<Result> future = threadPool.submit(task);
スレッド プールを閉じます: Use shutdown() スレッド プールをシャットダウンするメソッド。実行中のすべてのタスクが完了するまで待機します:
threadPool.shutdown();
スレッド プールを終了します: shutdownNow()## を使用します。 # スレッド プールを直ちに終了するメソッド。実行中のすべてのタスクを中断しようとします: <pre class='brush:java;toolbar:false;'>threadPool.shutdownNow();</pre>
次のコードは、スレッド プールが画像処理タスクを処理する方法を示しています。
ExecutorService threadPool = Executors.newFixedThreadPool(4); List<Image> images = ...; // 获取需处理的图像列表 for (Image image : images) { Future<Image> future = threadPool.submit(() -> processImage(image)); } // 等待所有图像处理完成 for (Future<Image> future : futures) { Image processedImage = future.get(); }
この例では、スレッド プールは同時に最大 4 つの画像を処理します。タスクを送信すると、
submit() メソッドは Future
を返します。これは、タスクの完了後に結果を取得するために使用できます。 注意事項
スレッド プール サイズ:
スレッド プールのサイズは、タスクの種類と利用可能なリソースに基づいて最適化する必要があります。エラー処理:
以上がJava はどのようにしてスレッド プールを作成および管理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。