一篇文章搞定Python多进程(附教程资料及源码)

本文介绍了Python中处理多核CPU资源的多进程技术,详细讲解了如何使用multiprocessing包创建进程,包括两种实现方法,并展示了Process类的相关方法。此外,还探讨了Python多进程间的通信,如使用Queue、Pipe和Managers实现数据共享。最后,提到了进程池的概念及其应用。
摘要由CSDN通过智能技术生成

开始介绍Python的多进程之前,我们需要了解python中的GIL的存在,也就是多线程的时候,同一时间只能有一个线程在CPU上运行,而且是单个CPU上运行,不管你的CPU有多少核数。如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。

1.Python多进程模块

Python中的多进程是通过multiprocessing包来实现的,和多线程的threading.Thread差不多,它可以利用multiprocessing.Process对象来创建一个进程对象。这个进程对象的方法和线程对象的方法差不多也有start(), run(), join()等方法,其中有一个方法不同Thread线程对象中的守护线程方法是setDeamon,而Process进程对象的守护进程是通过设置daemon属性来完成的。

下面说说Python多进程的实现方法,和多线程类似

2.Python多进程实现方法一

from multiprocessing import Process

def fun1(name):

print('测试%s多进程' %name)

if __name__ == '__main__':

process_list = []

for i in range(5): #开启5个子进程执行fun1函数

p = Process(target=fun1,args=('Python',)) #实例化进程对象

p.start()

process_list.append(p)

for i in process_list:

p.join()

print('结束测试')

结果

测试Python多进程

测试Python多进程

测试Python多进程

测试Python多进程

测试Python多进程

结束测试

Process finished with exit code 0

上面的代码开启了5个子进程去执行函数,我们可以观察结果,是同时打印的,这里实现了真正的并行操作,就是多个CPU同时执行任务。我们知道进程是python中最小的资源分配单元,也就是进程中间的数据,内存是不共享的,每启动一个进程,都要独立分配资源和拷贝访问的数据,所以进程的启动和销毁的代价是比较大了,所以在实际中使用多进程,要根据服务器的配置来设定。

3.Python多进程实现方法二

还记得python多线程的第二种实现方法吗?是通过类继承的方法来实现的,python多进程的第二种实现方式也是一样的

from multiprocessing import Process

class MyProcess(Process): #继承Process类

def __init__(self,name):

super(MyProcess,self).__init__()

self.name = name

def run(self):

print(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值