gpt4 book ai didi

python - 如何在并行的情况下同时处理 IO 和 CPU 限制?

转载 作者:太空宇宙 更新时间:2023-11-03 14:51:24 24 4
gpt4 key购买 nike

是否可以在所有可用 CPU(而不是一个)上启动多个线程?一个示例代码会很棒。

或者,我可以跨越多个进程,然后在每个进程中创建多线程吗?

我正在使用多线程,这对于我的脚本的 IO 端效果很好。但是,我的脚本的计算成本也很高,因此我想在多个 CPU 上启动多个线程。

我的代码流程:

def worker(url):
extract url (io bound)
process url content (cpu bound)

应对此类员工的有效方法应该是什么?

最佳答案

Is it possible launch multiple threads on all available CPUs rather than one?

一般来说,线程在任何可用的 CPU 上运行。除非你指定了一个线程/进程在特定的CPU上运行。 (具体操作方式因操作系统而异)

但是,如果您使用 python.org 的 Python 实现(“CPython”),则没关系。 CPython 有一个“全局解释器锁”,强制一次只有一个线程正在执行 Python 字节码。因此,使用线程不会提高 CPython 的处理性能。

因此,对于计算成本较高的任务,您可能应该使用multiprocessing模块在不同的进程中完成它。如果对大量数据完成相同的工作,那么使用 multiprocessing.Pool 通常是一个好主意。

关于python - 如何在并行的情况下同时处理 IO 和 CPU 限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45880807/

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