multiprocessing — 基于进程的并行

源代码: Lib/multiprocessing/


可用性 : not Android, not iOS, not WASI.

This module is not supported on mobile platforms or WebAssembly 平台 .

介绍

multiprocessing 是支持卵生进程的包,所用 API 类似 threading 模块。 multiprocessing 包同时提供本地和远程并发,有效避开 全局解释器锁 通过使用子进程而不是线程。由于此, multiprocessing module allows the programmer to fully leverage multiple processors on a given machine. It runs on both POSIX and Windows.

The multiprocessing 此外,模块引入的 API 不拥有模拟在 threading 模块。这方面的首要范例是 Pool 对象,它提供了可以跨多个输入值并行执行函数,和跨进程分发输入数据 (数据并行性) 的一种方便手段。以下范例演示在模块中定义这种特征的常见实践,以便子级进程可以成功导入该模块。这个数据并行性的基本范例使用 Pool ,

from multiprocessing import Pool
def f(x):
    return x*x
if __name__ == '__main__':
    with Pool(5) as p:
        print(p.map(f, [1, 2, 3]))