题目
在一个使用TaskPool的应用程序中,你发现当任务数量激增时,系统性能[1]没有明显下降。这最可能是因为:A. 所有任务都是I/O密集型任务B. 系统自动增加了工作线程的数量C. 任务的优先级设置为最高D. 任务队列的长度没有上限
在一个使用TaskPool的应用程序中,你发现当任务数量激增时,系统性能[1]没有明显下降。这最可能是因为:
A. 所有任务都是I/O密集型任务
B. 系统自动增加了工作线程的数量
C. 任务的优先级设置为最高
D. 任务队列的长度没有上限
题目解答
答案
B. 系统自动增加了工作线程的数量
解析
考查要点:本题主要考察对线程池(TaskPool)工作原理的理解,特别是任务数量激增时系统性能的维持机制。
解题核心思路:
线程池的性能稳定性依赖于任务类型和线程管理策略。关键点在于分析选项中哪些机制能有效应对任务激增而不导致性能下降。
破题关键点:
- I/O密集型任务的特点是线程常处于等待状态,对CPU资源消耗低,但任务激增时仍需合理调度。
- 自动调整线程数能动态匹配任务负载,避免资源闲置或过载。
- 任务队列无上限可能导致任务堆积,无法直接解释性能稳定。
- 任务优先级影响执行顺序,但与整体吞吐量无直接关系。
选项分析
A. 所有任务都是I/O密集型任务
I/O密集型任务因频繁等待外部响应,单个线程的CPU占用低。但任务激增时,若线程数固定,仍可能因队列堆积导致延迟。无法直接解释性能稳定。
B. 系统自动增加了工作线程的数量
线程池通常通过动态调整线程数应对负载变化。当任务激增,系统自动创建更多线程可提升并行处理能力,避免任务积压,是性能稳定的最可能原因。
C. 任务的优先级设置为最高
优先级仅影响任务执行顺序,不会增加系统处理能力。若总任务量超出线程池能力,性能仍会下降,与题干矛盾。
D. 任务队列的长度没有上限
队列无上限会导致任务无限堆积,但线程数固定时,处理速度无法提升,无法解释性能稳定。