Python实现多进程

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

首先,import相关的包:函数

from multiprocessing import Process, Manager
import multiprocessing

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

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

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

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

p.join()

若是是多个进程,必定要让多个进程都start()之后再join(),不然就成了上一个进程运行完了再开始下一个进程。blog

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

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

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

相关文章
相关标签/搜索