python多进程与进程池

python中多进程和多线程使用multiprocessing模块实现多进程和进程池

多进程
multiprocessing.Process()
参数:
target 指定要绑定的函数
name 给创建的进程起一个名字
args 需要一个元组,给target指定的函数按位置传参
kwargs 需要给一个字典,给target指定的函数按键值

from multiprocessing import Process
def fun(x,y):
	return x+y
p1=Process(target=fun,args=(1,2))
p1.start()
print("进程名称:",p.name)
print("进程PID:",p.pid)
print('进程状态:',p.is_alive())
p.join([timeout])#父进程可设置超时回收时间,不设置则父进程一直等待

进程池
Pool
功能:创建进程池
参数: processes :进程池中进程的数量,如果不给,默认为cup核心数

apply_async() : 以异步的方式将要执行的事件放入进程池
参数
func : 要执行的函数
args : 给函数按位置传参
kwds : 给函数按照键值传参
返回值 : 返回事件执行后的返回值对象,可以通过调用get() 函数获取事件函数return的内容
apply() : 按照顺序添加要执行的时间,执行一个再添加一个
close(): 关闭进程池,使其不能再加入新的事件
join():阻塞等待进程池将时间都执行结束后回收进程池

from multiprocess import Pool
def fun(x):
	return x**2
result=[ ]
pool = Pool(processes = 4)
for i in range(10):
	r=pool.apply_async(fun,(i,))#异步的方式将函数放入进程池,参数以元组形式传入
	result.append(r)
for res in result:
	print(res.get())#用get方法获取函数返回值
pool.close()#关闭进程池,进出不能再放入
pool.join()#等待回收进程池
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值