multiprocessing python_整理了几种在工作中对python多进程编程常常用到的方法

python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU资源,在python中大部分情况需要使用多进程。python提供了非常好用的多进程包Multiprocessing,只需要定义一个函数,python会完成其它所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。multiprocessing支持子进程、通信和共享数据、执行不同形式的同步,提供了Process、Queue、Pipe、LocK等组件

一、Process

语法:Process([group[,target[,name[,args[,kwargs]]]]])

参数含义:target表示调用对象;args表示调用对象的位置参数元祖;kwargs表示调用对象的字典。name为别名,groups实际上不会调用。

方法:is_alive():

join(timeout):

run():

start():

terminate():

属性:authkey、daemon(要通过start()设置)、exitcode(进程在运行时为None、如果为-N,表示被信号N结束)、name、pid。其中daemon是父进程终止后自动终止,且自己不能产生新的进程,必须在start()之前设置。

1.创建函数,并将其作为单个进程

994af55271e01a6742e67202b6b87c75.png

2.创建函数并将其作为多个进程

0a3d9de8e82cc2e37f6d7f3165a225a7.png

执行结果:

d5abea6f646007b030f5f35026dda6bc.png

3.将进程定义为类(开启进程的另一种方法,并不是很常用)

968581b09a4d1ebe8228efcea5d3fb88.png

4.daemon程序对比效果

不加daemon属性

1b4796f2aa262ce44cf59f6f9bda365c.png

加上daemon属性

4605424ace6c574f2f33d78bd475a89f.png

设置了daemon属性又想执行完的方法:

cbc5b7870db0daf2ecc40ce9e370d7a0.png

5.join():上面的代码执行完毕之后,才会执行后i面的代码。

先看一个例子:

736f737fd7f9190e5e90fc5ddbfac8cc.png

执行结果:

d6a5d1c8b917046a667b7d66a53dec7d.png

添加join()

61344138bcc247d1a621bca0ced7169d.png

改变一下位置

aa18426320760f89fbbb96cf4b969a64.png

6.其它属性和方法

7553b77ce2bf0e79f2b335b2ca0f6e77.png

5050106541e015b785252fd23c8bc898.png

转自:python多进程编程常用到的方法 - 明王不动心 - 侵删

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值