python的multiprocessing包是标准库提供的多进程并行计算包,提供了和threading(多线程)相似的API函数,但是相比于threading,将任务分配到不同的CPU,避免了GIL的限制。下面我们对multiprocessing中的Pool和Process类做介绍。apply apply_asyncapply 要逐个执行任务,在python3中已经被弃用,而apply_async是apply的异步执行版本。并行计算一定要采用apply_async函数。map map_asyncmap_async 是 map的异步执行函数。相比于 apply_async, map_async 只能接受一个参数。Process采用Process必须注意的是,Process对象来创建进程,每一个进程占据一个CPU,所以要建立的进程必须 小于等于 CPU的个数。如果启动进程数过多,特别是当遇到CPU密集型任务,会降低并行的效率。进程间通信Process和Pool均支持Queues 和 Pipes 两种类型的通信。Queue 队列队列遵循先进先出的原则,可以在各个进程间使用。

python multiprocessing 多进程并行计算的操作

python multiprocessing 多进程并行计算的操作

python multiprocessing 多进程并行计算的操作

python multiprocessing 多进程并行计算的操作

python multiprocessing 多进程并行计算的操作

python multiprocessing 多进程并行计算的操作

python multiprocessing 多进程并行计算的操作

python multiprocessing 多进程并行计算的操作

python multiprocessing 多进程并行计算的操作

python multiprocessing 多进程并行计算的操作

python multiprocessing 多进程并行计算的操作