python 进程池的使用和坑

 1 from multiprocessing import Pool,Process
 2 import time,os
 3 def Foo(a):#创建函数
 4     time.sleep(2)
 5     print('in the process:',os.getpid(),os.getppid())
 6     return a+100
 7 
 8 def bar(arga):#创建函数
 9     print('---->',arga)
10 if __name__ == '__main__':
11     print('父进程ID:',os.getpid())
12     pool = Pool(2)#创建进程池最大容量为2,最多允许2个进程同时运行,参照线程信号量模式
13     for i in range(10):#创建10个进程
14         pool.apply_async(func=Foo,args=(i,),callback=bar)#创建线程,参数1调用函数,参数2设置i为函数FOO参数,参数3为返回函数
15         #参数三为回调函数,将FOO函数的返回值作为参数调用bar函数。
16         #pool.apply(func=Foo,args=(i,),callback=bar)#串行
17          #pool.apply_async(func=Foo,args=(i,),callback=bar)#并行
18 
19     pool.close()#关闭
20     #pool.join()#如果没有.join语句,程序不执行就会关闭。这里是个大坑。

 

from multiprocessing import Pool,Process
import time,os
def Foo(a):#创建函数
time.sleep(2)
print('in the process:',os.getpid(),os.getppid())
return a+100

def bar(arga):#创建函数
print('---->',arga)
if __name__ == '__main__':
print('父进程ID:',os.getpid())
pool = Pool(2)#创建进程池最大容量为2,最多允许2个进程同时运行,参照线程信号量模式
for i in range(10):#创建10个进程
pool.apply_async(func=Foo,args=(i,),callback=bar)#创建线程,参数1调用函数,参数2设置i为函数FOO参数,参数3为返回函数
#参数三为回调函数,将FOO函数的返回值作为参数调用bar函数。
#pool.apply(func=Foo,args=(i,),callback=bar)#串行
#pool.apply_async(func=Foo,args=(i,),callback=bar)#并行

pool.close()#关闭
#pool.join()#如果没有.join语句,程序不执行就会关闭。

转载于:https://www.cnblogs.com/hushuning/p/7919690.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值