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

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

相关推荐

无一技之长怎么办:别去右边,售前,实施,需求分析一起,这是把人当牛马用啊,快跑,这些岗位天花板很低的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务