如何在Java中使用线程池实例
在Java中,我们可以使用ThreadPoolExecutor
来创建和管理线程池。以下是一个简单的示例:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建一个固定大小的线程池
ExecutorService executor = Executors.newFixedThreadPool(5); // 5个线程
// 提交任务到线程池执行
for (int i = 0; i < 10; i++) { // 10个任务
Runnable task = new Task(i);
executor.execute(task);
}
// 关闭线程池,所有提交的任务都将完成
executor.shutdown();
// 等待所有任务完成
while (!executor.isTerminated()) {
System.out.println("Task is still running...");
try {
Thread.sleep(1000); // 每秒检查一次
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 所有任务都已经完成,线程池也已经关闭
System.out.println("All tasks completed. ThreadPool closed.");
}
static class Task implements Runnable {
private int index;
public Task(int index) {
this.index = index;
}
@Override
public void run() {
System.out.println("Task " + index + " started...");
try {
Thread.sleep(500); // 模拟耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Task " + index + " completed.");
}
}
}
在这个例子中,我们创建了一个固定大小的线程池(ExecutorService
),并提交了10个任务到线程池执行。当所有任务完成后,线程池也被关闭。
还没有评论,来说两句吧...