假设一个计算密集型任务在一个单核CPU的系统中运行,并采用多线程技术进行加速。在以下哪种情况下,相较于单线程执行,多线程执行的效率提升最为显著:
答案解析
A选项错误,栈内存是线程私有的,计算发生在栈内无法体现多线程优势,且线程数远大于核心数只会增加线程上下文切换的开销,降低效率。B选项错误,IO密集型任务不适合使用多线程在单核CPU上进行加速,因为CPU需要频繁等待IO操作完成,多线程反而可能增加上下文切换的开销。C选项正确,计算密集型任务如果能分解为无依赖的子任务并行执行,并且线程数等于核心数,可以最大程度利用CPU资源,减少上下文切换的开销。D选项错误,访问大量共享数据且无同步措施会产生数据竞争,导致结果不确定,甚至程序崩溃,效率反而更低。
正确答案:C