Nik*_*s R 2 c++ python windows parallel-processing multiprocessing
我对多处理感到有些困惑.我是一名3年的Python程序员,但从来没有真正需要并行执行任务(不仅仅是异步).但我所知道或者想知道的是,当multiprocessing在Python中使用模块实现"真正的并行性"时,python.exe会产生新的进程!
像Cinema 4D这样的3D软件使用所有可用CPU的功能来渲染3D场景.但我Cinema 4D.exe在任务管理器中看不到多个进程.
multiprocessing模块时会产生多个Python进程?通过在同一进程中运行多个线程,也可以使用多个CPU.这不是Python multiprocessing模块的功能.
threadingPython中有一个模块.不幸的是,在CPython中,线程没有你想象的那么有用,因为它们都在争夺所谓的"全局解释器锁".因此,它们在Python中的并行性远远低于许多其他语言.如果使用线程,则需要担心代码中的哪些操作才真正并行.如果您使用流程,则不会(尽管您可能会担心其他事情,例如共享数据).
我不知道Python的替代实现是否与GIL具有相同的问题.但除非你专门为Jython/IronPython编写代码,否则CPython的限制适用于你的程序......
| 归档时间: |
|
| 查看次数: |
1171 次 |
| 最近记录: |