假设有一个线程池,核心线程数为2,最大线程数为100,阻塞队列容量为100。如果一次性提交100个任务,每个任务执行时间为1秒,请问所有任务大约需要多长时间执行完?如果是200个任务呢?
考察说明
考察对线程池核心线程数、最大线程数、阻塞队列容量及任务调度机制的综合理解
回答思路
- 正确分析前2个任务由核心线程执行,后续98个任务进入阻塞队列等待
- 理解核心线程数不足时任务会排队而非立即创建新线程
- 计算100个任务的总执行时间为50秒:2个任务执行完后再从队列中取新任务
- 分析200个任务时,队列满后创建额外线程,最多98个线程执行队列外任务,总时间约为100秒或略多
- 考虑线程创建开销和任务调度延迟的近似影响
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。