面试问到的java线程池的问题

面试被问到java线程池参数问题,为什么要有 核心线程数、最大线程数、等待队列这几个参数,少了其中之一为什么不行,求大神解答一波?
全部评论
和他的机制原理有关吧  首先新任务有了 先判断核心线程池中的线程是否都在执行任务(核心线程数),如果有空闲线程就执行,然后去看工作队列是否已满,没已满放在工作队列中等待(等待队列),如果工作队列已满,判断线程池(注意不是核心线程池)是否都处于工作状态,如果没有则执行(最大线程数) 如果没有可用线程,则有丢弃策略(丢弃策略的选择参数)。原理是这样当然参数也不能少。当然其实和整个线程池的继承模型也有关。executor接口只是最顶端的,下面有executorService接口继承这个接口,还有一个抽象类去实现这个service接口,最后ThreadExecutor实现了这个接口。其中核心参数定义在接口中的方法里
点赞 回复 分享
发布于 2017-10-08 20:49
感觉可能要从 系统设计 这方面来回答,“线程池为什么要这么设计”,参考了什么机制来设计的
点赞 回复 分享
发布于 2017-10-15 15:41
结合源码讲底层工作机制就行
点赞 回复 分享
发布于 2017-10-09 07:24

相关推荐

06-06 03:40
已编辑
电子科技大学 Java
在秋招的小白菜很想养修勾:一眼 苍穹外卖+谷粒商城,项目换一换吧,可以找一些付费知识星球博主带带,避免烂大街。多投投大厂,背背八股,你这学历乱杀了,等实习经验到位,到时候大厂闭眼选
投递美团等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务