gpt4 book ai didi

c++ - 多处理=多个进程运行?

转载 作者:可可西里 更新时间:2023-11-01 09:43:24 34 4
gpt4 key购买 nike

我对多处理有些困惑。我是一个 3 年的 Python 程序员,但是从来没有真正需要并行执行任务(不仅仅是异步)。但我所知道的,或认为知道的是,当使用 Python 中的 multiprocessing 模块实现“真正的并行性”时,会产生新的 python.exe 进程!

Cinema 4D这样的3D软件例如,使用所有可用 CPU 的能力来渲染 3D 场景。但是我在任务管理器中没有看到多个 Cinema 4D.exe 进程。

  1. 我对上面的陈述是否正确,即使用 multiprocessing 模块时会产生多个 Python 进程?
  2. 如果是这样,为什么会这样,C++ 应用程序如何在没有多进程的情况下使用所有 CPU?

最佳答案

也可以通过在同一进程中运行多个线程来使用多个 CPU。这不是 Python multiprocessing 模块的作用。

Python 中有一个threading 模块。不幸的是,在 CPython 中,线程并不像您想象的那么有用,因为它们都在争夺所谓的“全局解释器锁”。因此,与许多其他语言相比,它们在 Python 中的并行性要低得多。如果使用线程,则需要担心代码中的哪些操作真正是并行的。如果您使用流程,则不会(尽管您可能会担心其他事情,例如共享数据)。

我不知道 Python 的替代实现是否存在与 GIL 相同的问题。但是除非您专门为 Jython/IronPython/其他编写代码,否则 CPython 的限制适用于您的程序...

关于c++ - 多处理=多个进程运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14777488/

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