【python】线程学习之单线程、多线程和线程池对比

本文通过实际操作,探讨了单线程、多线程和线程池在处理大量文件拷贝任务时的运行时间,发现进程池的效率通常高于线程池,尤其是在无参数设置时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多线程教程练习,某目录下,20个文件,每个文件62M,共1.21G。拷贝至另一处。

单线程结果

运行时长: 10.51秒。(刚反应过来,单线程不就是单进程么。)

多线程结果

有20个文件就生成20个子线程。

运行时长: 5.22~9.73秒。(20个进程耗时不到4秒就完成。20个线程却需要近10秒。)
 

线程池结果

executor = ThreadPoolExecutor()

运行时长: 0.21~5.32秒。(比同样无参的进程池要慢2秒,才全部完成。)

不知后面8条记录怎么就突然3,4,5秒了。无参时,有10个子线程参与。进程与核心数有关,线程与核心数无关,不知这10个线程是怎么个来源。

executor = ThreadPoolExecutor(max_workers=1)

线程2936运行时长: 0.28~0.58秒。(比进程池要快一些)

executor = ThreadPoolExecutor(max_workers=2)

运行时长: 0.63~1.58秒。(比进程池要慢)
 

executor = ThreadPoolExecutor(max_workers=3)

运行时长: 0.27~1.73秒。(比进程池要快)

executor = ThreadPoolExecutor(max_workers=4)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五月春生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值