Java并发编程:线程池使用示例
在Java中,线程池是一种管理线程资源的方式。它可以在需要时创建新线程,而不需要每次请求新任务都去创建新线程。
以下是一个简单的线程池使用示例:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建一个固定大小的线程池
ExecutorService executor = Executors.newFixedThreadPool(5);
// 提交任务到线程池执行
for (int i = 0; i < 10; i++) {
Runnable task = () -> {
System.out.println("Task " + i + " is running by thread " + Thread.currentThread().getId());
try {
Thread.sleep(500); // 模拟耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Task " + i + " completed by thread " + Thread.currentThread().getId());
};
executor.submit(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("\nAll tasks completed. ThreadPool closed.\n");
}
}
这个示例创建了一个固定大小的线程池,然后提交了10个任务到线程池执行。最后关闭线程池以释放资源。
还没有评论,来说两句吧...