Javaで複数のタスクを並列実行する方法
Javaで複数のタスクを並行して実行するには、マルチスレッドを使用します。
- Runnableインターフェースを実装したタスククラスを作成し、run()メソッドを実装して具体的なタスクロジックを記述します。
- タスクオブジェクトを複数作成する。
- ExecutorServiceの新しい固定サイズスレッドプールを作成するには、Executorsクラスの静的メソッドを使用します。例えば、サイズは5の固定スレッドプールを作成するには、ExecutorService executorService = Executors.newFixedThreadPool(5); を使用します。
- 调用线程池的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は複数のタスクを効率的に並列実行し、コンピュータのマルチコア性能をフル活用できます。