使用时multiprocessing.dummy
,您使用的是线程,而不是进程:
multiprocessing.dummy
复制API的API,multiprocessing
但仅不过是threading
模块周围的包装器。
这意味着您受到全局解释器锁(GIL)的限制,并且实际上只有一个线程可以一次执行cpu绑定的操作。这将使您无法充分利用cpu。如果要在所有可用内核之间获得完全的并行性,则需要解决您遇到的酸洗问题multiprocessing.Pool
。
请注意,multiprocessing.dummy
如果您需要并行化的工作是受IO限制的,或者利用释放GIL的C扩展名,则这可能仍然有用。但是,对于纯Python代码,您需要multiprocessing
。