2

AFAIK,由于Global Interpreter Lockthreading.Thread ,实例实际上不能并行运行,它强制只有一个线程能够在任何时候运行(阻塞 I/O 操作时除外)。

ParallelPython使用该threading模块。

但是,如果我向它提交多个本地作业,它确实会并行执行它们,或者至少看起来是这样。我有 8 个内核,如果我启动 8 个作业来简单地运行空循环,它们都会占用 12-13% 的 CPU(这意味着它们每个都在一个内核上执行,我可以在我的任务管理器中看到这一点)

有谁知道这怎么会发生?

4

1 回答 1

6

正如链接页面所说,

PP模块克服了这个限制,并提供了一种编写并行 python 应用程序的简单方法。在内部ppsmp使用进程和 IPC(进程间通信)来组织并行计算

因此,正如人们所期望的那样,实际的并行性必须是由于调用了多个进程。

于 2013-05-01T21:17:38.560 回答