线程池优化:Java ThreadPoolExecutor的最佳实践实例
在Java中,线程池(ThreadPoolExecutor)是一个强大的工具,用于管理和复用线程。以下是一些优化 ThreadPoolExecutor 的最佳实践实例:
设置核心线程数:
ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(5); // 设置核心线程数为5
动态调整线程池大小:
executor.setMaximumPoolSize(10); // 当任务需求达到10时,允许线程池最多扩展到10
// 使用`shutdownNow()`检查当前线程池中的工作,并停止它们。
executor.shutdownNow();
使用线程池的静态方法:
// 创建一个有超时限制的线程池实例
ThreadPoolExecutor executor = Executors.newFixedThreadPool(5, new TimeoutExecutor<>(5, TimeUnit.SECONDS));
// 使用线程池的静态方法来提交任务
Future<Integer> future = executor.submit(() -> {
// 任务代码...
return 10; // 返回结果
}}));
// 等待任务完成,获取返回结果
try {
int result = future.get(); // 获取结果
System.out.println("Task completed with result: " + result);
} catch (InterruptedException | ExecutionException e) {
System.err.println("Error occurred in task execution: " + e.getMessage());
e.printStackTrace();
}
以上实例展示了如何创建和管理 ThreadPoolExecutor,以优化线程池的性能。
还没有评论,来说两句吧...