Java线程池管理:通过实例看 ThreadPoolExecutor 的应用
ThreadPoolExecutor
是Java中用于线程池管理的类,它简化了多线程环境下的任务调度和资源控制。以下是一个通过实例理解ThreadPoolExecutor
的应用的例子:
// 创建一个线程池,大小为10个线程
ThreadPoolExecutor executor = new ThreadPoolExecutor(10, // 线程池的最大并发数
60, // 每个任务的执行时间最长为60秒
TimeUnit.SECONDS, // 时间单位
new ArrayBlockingQueue<>(// 队列,用于线程任务的提交和接收
20, // 最大容量
true)); // 非阻塞队列
// 提交一个任务到线程池中执行
executor.execute(() -> {
System.out.println("Task started..."); // 执行任务的开始
try {
Thread.sleep(500); // 暂停500毫秒
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Task completed..."); // 执行任务完成
}));
// 关闭线程池,释放资源
executor.shutdown(); // 阻塞直到所有任务完成或取消
while (!executor.isTerminated()) { // 等待所有任务完成
try {
Thread.sleep(100); // 每秒检查一次
} catch (InterruptedException e) {
e.printStackTrace();
}
}
在这个例子中,我们创建了一个线程池,大小为10个线程。然后提交一个任务到线程池执行,并在完成后关闭线程池。
通过这种方式,我们可以有效地管理和控制线程的使用,避免资源浪费和系统压力过大。
还没有评论,来说两句吧...