Python实现多进程

2018-07-03 01:12:15来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:关于Linux的简单介绍

下一篇:解决matplotlib中文无法显示问题