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++) { // 假设每个任务耗时1秒
executor.submit(() -> {
System.out.println("Task " + i + " is running by thread: " + Thread.currentThread().getName());
try {
Thread.sleep(1000); // 模拟耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Task " + i + " completed by thread: " + Thread.currentThread().getName());
});
}
// 关闭线程池,释放资源
executor.shutdown(); // 提示关闭,不阻塞
while (!executor.isTerminated())) { // 确保所有任务执行完毕
System.out.println("Executor still running...");
try {
Thread.sleep(1000); // 防止主线程阻塞
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("All tasks completed by executor.");
}
}
这个示例创建了一个固定大小的线程池(5个线程),并提交10个耗时任务到线程池执行。最后关闭线程池,确保所有任务执行完毕。
还没有评论,来说两句吧...