gpt4 book ai didi

python - 在执行许多 I/O 绑定(bind)操作时如何在 Python 中最大化性能?

转载 作者:太空狗 更新时间:2023-10-29 19:33:27 26 4
gpt4 key购买 nike

我的情况是我正在下载大量文件。现在一切都在一个主 Python 线程上运行,并且每隔几分钟下载多达 3000 个文件。问题是这样做的时间太长了。我意识到 Python 没有真正的多线程,但是有更好的方法吗?我正在考虑启动多个线程,因为 I/O 绑定(bind)操作不应该需要访问全局解释器锁,但也许我误解了这个概念。

最佳答案

多线程非常适合用于加速网络上的 I/O 的特定目的(尽管异步编程会提供更高的性能)。 CPython 的多线程非常“真实”( native 操作系统线程)——您可能想到的是 GIL,它是阻止不同线程同时运行 Python 代码的全局解释器锁。但是所有 I/O 原语在等待系统调用完成时放弃 GIL,因此 GIL 与 I/O 性能无关!

对于异步编程,最强大的框架是twisted ,但如果您从未完成过此类编程,可能需要一段时间才能掌握它。通过使用线程池获得额外的 I/O 性能可能会更简单。

关于python - 在执行许多 I/O 绑定(bind)操作时如何在 Python 中最大化性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2971381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com