AFAIK,由于Global Interpreter Lockthreading.Thread
,实例实际上不能并行运行,它强制只有一个线程能够在任何时候运行(阻塞 I/O 操作时除外)。
ParallelPython使用该threading
模块。
但是,如果我向它提交多个本地作业,它确实会并行执行它们,或者至少看起来是这样。我有 8 个内核,如果我启动 8 个作业来简单地运行空循环,它们都会占用 12-13% 的 CPU(这意味着它们每个都在一个内核上执行,我可以在我的任务管理器中看到这一点)
有谁知道这怎么会发生?