3

在 CPython 中,线程模块不使用多核,因为它使用全局解释器锁。然而,我最近从标准库中发现了多处理模块,据说它回避了 GIL。所以我认为使用该模块可以在 CPython 中正确利用多个核心,但我想知道我是否正确。

我需要编写一个需要充分利用多核的应用程序,但这对性能不是很重要,所以我可以用 Python 编写它,但我需要知道这个模块是否允许我使用多核?

4

1 回答 1

6

multiprocessing库使用子进程;这些都在自己的 Python 解释器中运行。

操作系统可以并且将跨多个进程和内核调度这些进程,是的。因为每个子进程都是一个单独的 Python 解释器进程,所以 GIL 不会干扰。

于 2013-02-13T11:41:48.217 回答