关于Executor的解耦

来源:9-7 Java线程池

YogurtJ

2020-02-08

老师您好,您课上讲到

“Executor初衷呢是将任务提交和任务执行细节解耦,

对于不同的Executor的实现,execute方法可能是创建一个新线程并立即启动,
也可能是使用已有的工作线程来运行传入的任务
也可能是根据设置线程池的容量 或者是 阻塞队列的容量来决定是否要将传入的线程放入阻塞队列中,或者拒绝接收传入的线程”

这句话中还是没太听明白,Executor为何就做到了任务提交和任务执行细节的解耦,祥仔可否再解释的稍微详细些。感谢~~

写回答

1回答

翔仔

2020-02-08

同学好,Executor和Thread是基于生产者-消费者模式的,其提交任务的线程相当于生产者,执行任务的线程相当于消费者,而Executor就负责将任务提交,也就是注册到池子里,然后由池子的其中一个线程拿去消费。所以怎么提交的逻辑和实际执行的业务代码逻辑是分开的。

2
0

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程