在 Java 中,Executor(执行器) 是 Java 并发编程里的一个核心概念,用来解耦“任务的提交”和“任务的执行”。
Executor 本身是一个接口,位于 java.util.concurrent 包中:
public interface Executor {
void execute(Runnable command);
}
它的作用很简单:
把你想要执行的任务(Runnable)交给它,它来负责怎么运行。
在不用 Executor 时,你可能这样写:
new Thread(() -> {
// 执行业务
}).start();
问题:
使用 Executor 后:
Executor executor = Executors.newFixedThreadPool(10);
executor.execute(() -> {
// 执行业务
});
好处:
execute(Runnable)扩展了 Executor,支持:
Callable)ExecutorService executor = Executors.newFixedThreadPool(5);
Future<String> future = executor.submit(() -> "hello");
支持定时 / 周期任务
ScheduledExecutorService s = Executors.newScheduledThreadPool(2);
s.schedule(() -> {}, 1, TimeUnit.SECONDS);
通过 Executors 工具类创建:
| 类型 | 说明 |
|---|---|
newFixedThreadPool |
固定线程数 |
newCachedThreadPool |
线程可缓存,适合短任务 |
newSingleThreadExecutor |
单线程顺序执行 |
newScheduledThreadPool |
定时任务 |
⚠️ 实际开发中更推荐 手动创建 ThreadPoolExecutor,避免资源风险。
Thread 是“干活的工人”,Executor 是“安排工人的管理者”。
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.execute(() -> {
System.out.println("任务1");
});
executor.execute(() -> {
System.out.println("任务2");
});
executor.shutdown();
如果你愿意,我也可以:
你想看哪一个?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。