Javaで複数のタスクを並列実行する方法

Javaで複数のタスクを並行して実行するには、マルチスレッドを使用します。

  1. Runnableインターフェースを実装したタスククラスを作成し、run()メソッドを実装して具体的なタスクロジックを記述します。
  2. タスクオブジェクトを複数作成する。
  3. ExecutorServiceの新しい固定サイズスレッドプールを作成するには、Executorsクラスの静的メソッドを使用します。例えば、サイズは5の固定スレッドプールを作成するには、ExecutorService executorService = Executors.newFixedThreadPool(5); を使用します。
  4. 调用线程池的execute()方法,将任务添加到线程池中执行。

以下は簡単なサンプルコードです:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ParallelExecutionExample {

    public static void main(String[] args) {
        // 创建一个固定大小为5的线程池
        ExecutorService executorService = Executors.newFixedThreadPool(5);

        // 创建多个任务对象
        Runnable task1 = new Task("Task 1");
        Runnable task2 = new Task("Task 2");
        Runnable task3 = new Task("Task 3");
        Runnable task4 = new Task("Task 4");
        Runnable task5 = new Task("Task 5");

        // 执行任务
        executorService.execute(task1);
        executorService.execute(task2);
        executorService.execute(task3);
        executorService.execute(task4);
        executorService.execute(task5);

        // 关闭线程池
        executorService.shutdown();
    }

    static class Task implements Runnable {
        private String name;

        public Task(String name) {
            this.name = name;
        }

        @Override
        public void run() {
            System.out.println("Task " + name + " is running");
            // 具体的任务逻辑
        }
    }
}

上述コードでは、5つのワーカースレッドを持つ固定サイズのThreadPoolを作成し、5つのタスクオブジェクトを作成してそれらをThreadPoolに追加して実行します。各タスクは自身の名前を出力して、実際的なタスクロジックを実行します。最後に、ThreadPoolのshutdown()メソッドを呼び出してThreadPoolをシャットダウンします。

スレッドプールを利用することで、Javaは複数のタスクを効率的に並列実行し、コンピュータのマルチコア性能をフル活用できます。

bannerAds