简短结论:Executor 本身不是线程池,但线程池通常是 Executor 的实现。
Executor 是什么java.util.concurrent.Executor 是一个接口,只定义了一个方法:
public interface Executor {
void execute(Runnable command);
}
它的作用是:把“任务的提交”和“任务的执行方式”解耦。
Executor 的关系Executor:只是一个执行任务的抽象常见关系:
Executor(接口)
↑
ExecutorService(接口,继承 Executor)
↑
ThreadPoolExecutor(线程池实现)
我们通常说的“线程池”是:
ExecutorService pool = Executors.newFixedThreadPool(10);
这里的:
Executors 是工厂类ThreadPoolExecutorThreadPoolExecutor 实现了 Executor✅ 所以:线程池是 Executor 的一种实现
Executor directExecutor = Runnable::run;
这个 Executor:
Executor 是线程池的“父概念”,线程池是 Executor 的“具体实现之一”。
如果你愿意,我也可以帮你画一张 Executor 体系结构图,或者讲 ThreadPoolExecutor 的核心参数。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。