Rhu*_*arb 9 python
我有一种情况,我下载了很多文件.现在一切都在一个主要的Python线程上运行,每隔几分钟下载多达3000个文件.问题是这样做的时间太长了.我意识到Python没有真正的多线程,但有没有更好的方法呢?我正在考虑启动多个线程,因为I/O绑定操作不应该要求访问全局解释器锁,但也许我误解了这个概念.
Ale*_*lli 16
多线程对于加速网络上的I/O的特定目的来说很好(尽管异步编程可以提供更高的性能).CPython的多线程非常"真实"(本机操作系统线程) - 您可能正在考虑的是GIL,它是阻止不同线程同时运行Python代码的全局解释器锁.但是所有I/O原语在等待系统调用完成时都会放弃GIL,因此GIL 与I/O性能无关!
对于异步编程,最强大的框架是扭曲的,但是如果你从未完成过这样的编程,它可能需要一段时间才能掌握它.通过使用线程池可以更简单地获得额外的I/O性能.
Amb*_*ber 5
可以随时看看multiprocessing.
multiprocessing
归档时间:
15 年,9 月 前
查看次数:
4427 次
最近记录:
14 年,7 月 前