ExecutorService 是 Java 并发包(java.util.concurrent) 中的一个接口,用来管理和控制线程的执行。它是 Java 中线程池的核心抽象,比直接使用 Thread 更安全、更高效、更易管理。
ExecutorService 是一个“线程池管理器”,负责提交任务、调度线程、管理生命周期。
new Thread(() -> {
// 执行任务
}).start();
问题:
ExecutorService executor = Executors.newFixedThreadPool(5);
executor.submit(() -> {
System.out.println("任务执行");
});
优点:
✅ 线程复用
✅ 控制并发数量
✅ 支持任务队列
✅ 支持返回值(Callable)
✅ 生命周期管理
executor.execute(() -> System.out.println("run"));
或
executor.submit(() -> System.out.println("run"));
Future<Integer> future = executor.submit(() -> {
return 1 + 1;
});
Integer result = future.get(); // 阻塞获取结果
executor.shutdown(); // 不再接受新任务,等待已有任务完成
executor.shutdownNow(); // 尝试立即关闭
Future<?> future = executor.submit(task);
future.get(); // 阻塞等待结果
future.cancel(true); // 取消任务
ExecutorService fixed = Executors.newFixedThreadPool(5);
ExecutorService cached = Executors.newCachedThreadPool();
ExecutorService single = Executors.newSingleThreadExecutor();
ScheduledExecutorService scheduled =
Executors.newScheduledThreadPool(3);
| 类型 | 说明 |
|---|---|
| FixedThreadPool | 固定线程数 |
| CachedThreadPool | 线程可复用、自动扩容 |
| SingleThreadExecutor | 单线程串行执行 |
| ScheduledThreadPool | 支持定时 / 周期性任务 |
⚠️ 生产环境建议手动创建 ThreadPoolExecutor,而不是用 Executors 工厂方法
| 接口 | 能力 |
|---|---|
Executor |
只支持执行任务 |
ExecutorService |
支持任务管理、生命周期、返回值 |
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> System.out.println("任务1"));
executor.submit(() -> System.out.println("任务2"));
executor.shutdown();
✅ ExecutorService 是 Java 中线程池的标准接口
✅ 用于提交任务、管理线程、控制并发
✅ 是并发编程的核心组件
✅ 实际开发中几乎都会用到
如果你愿意,我可以:
ExecutorService 和 ThreadPoolExecutor免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。