关于Executor的解耦
来源:9-7 Java线程池
YogurtJ
2020-02-08
老师您好,您课上讲到
“Executor初衷呢是将任务提交和任务执行细节解耦,
对于不同的Executor的实现,execute方法可能是创建一个新线程并立即启动,
也可能是使用已有的工作线程来运行传入的任务
也可能是根据设置线程池的容量 或者是 阻塞队列的容量来决定是否要将传入的线程放入阻塞队列中,或者拒绝接收传入的线程”
这句话中还是没太听明白,Executor为何就做到了任务提交和任务执行细节的解耦,祥仔可否再解释的稍微详细些。感谢~~
写回答
1回答
-
同学好,Executor和Thread是基于生产者-消费者模式的,其提交任务的线程相当于生产者,执行任务的线程相当于消费者,而Executor就负责将任务提交,也就是注册到池子里,然后由池子的其中一个线程拿去消费。所以怎么提交的逻辑和实际执行的业务代码逻辑是分开的。
20
相似问题