You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用多线程加载多个文件能否提速?为何实测反而更慢

多线程速度反而更慢的核心原因如下:

  • 计时指标选择错误
    你使用的time.process_time()统计的是进程所有线程的CPU执行时间总和,并不是真实世界的流逝时间(墙上时间)。多线程场景下每个线程的CPU耗时都会被累加统计,结果自然会高于单线程的数值。如果要对比真实的任务执行耗时,应该换用time.perf_counter()或者time.time()作为计时指标。
  • 任务实际没有产生磁盘I/O阻塞,性质发生变化
    测试时你刚写完10000个文件就立刻执行读取逻辑,这些文件的内容全部缓存在操作系统的页缓存(Page Cache)中,根本没有触发真实的磁盘I/O等待。原本预期的I/O密集型任务实际变成了CPU密集型任务,此时Python GIL争抢、线程上下文切换的开销完全盖过了多线程的收益,效率反而低于单线程顺序执行。
  • 多线程额外开销大于收益
    即便是真实I/O场景,这种小文件分批处理的模式也会产生线程池调度、任务拆分、结果合并的额外开销,如果I/O等待的时间节省量低于这些额外开销,也会出现多线程反而更慢的情况。如果你使用的是机械硬盘,多线程随机读还会导致磁头频繁寻址,效率比单线程顺序读更低。

验证方法:清空系统页缓存后换用正确的计时指标重新测试,就能观察到多线程对真实I/O场景的提速效果。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:54:02