Python实现多进程

Posted 代码空间

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python实现多进程相关的知识,希望对你有一定的参考价值。

Python可以实现多线程,但是因为Global Interpreter Lock (GIL),Python的多线程只能使用一个CPU内核,即一个时间只有一个线程在运行,多线程只是不同线程之间的切换,对多核CPU来说,就是巨大的浪费。如4核CPU,实际上只利用了一个核,CPU利用率只有25%。要充分利用多核CPU,可以实现Python的多进程。

首先,import相关的包:

from multiprocessing import Process, Manager
import multiprocessing

生成进程实例,并启动进程:

p = Process(target = Function_Name, args = (Function_Args_List))
p.start()

其中Function_Name是进程运行的函数名称,Function_Args_List是函数的参数列表,需要注意的是,以上代码必须写在if __name__ == ‘__main__‘:下面,否则会报错。

进程运行完了再执行父进程后面的代码,可以用join()来实现:

p.join()

如果是多个进程,一定要让多个进程都start()以后再join(),否则就成了上一个进程运行完了再开始下一个进程。

线程可以数据共享,进程是不能数据共享的,要实现数据共享,可以用:

m_list = multiprocessing.Manager().list(list)

以上代码在进程间共享了列表list。

以上是关于Python实现多进程的主要内容,如果未能解决你的问题,请参考以下文章

python多线程

[Python3] 043 多线程 简介

python中的多线程和多进程编程

python并发编程中的多进程(代码实现)

多线程编程

python 多进程,多线程,协程