在 Java 中,Executor(执行器) 是 Java 并发编程里用于**解耦“任务提交”和“任务执行”**的一套机制和接口,属于 java.util.concurrent 包。
Executor 是一个接口,核心作用是:不直接创建或管理线程,而是把“要执行的任务”交给它,由它来决定怎么跑。
public interface Executor {
void execute(Runnable command);
}
你只需要:
executor.execute(() -> System.out.println("任务执行"));
而不需要关心:
new Thread(() -> {
// 业务逻辑
}).start();
问题:
Executor executor = Executors.newFixedThreadPool(10);
executor.execute(task);
好处:
execute(Runnable)继承 Executor,增加了:
Future)ExecutorService executor = Executors.newFixedThreadPool(5);
Future<String> future = executor.submit(() -> "hello");
executor.shutdown();
支持定时 / 周期任务
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2);
scheduler.schedule(() -> {}, 5, TimeUnit.SECONDS);
通过 Executors 工具类创建:
| 类型 | 说明 |
|---|---|
newFixedThreadPool |
固定线程数 |
newCachedThreadPool |
按需创建线程 |
newSingleThreadExecutor |
单线程顺序执行 |
newScheduledThreadPool |
定时任务 |
⚠️ 实际生产更推荐 手动创建 ThreadPoolExecutor,避免资源失控。
| 对比 | Thread | Executor |
|---|---|---|
| 使用方式 | 手动管理 | 自动管理 |
| 性能 | 低 | 高 |
| 可控性 | 差 | 强 |
| 推荐度 | ❌ | ✅ |
Executor 是 Java 中“任务调度和执行”的抽象,线程池是它的核心实现,用来高效、安全地管理并发任务。
如果你愿意,我也可以帮你画一张 Executor 类关系图 或结合 线程池参数 详细讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。