python进程池

本文介绍了一个使用Python的multiprocessing模块创建进程池的具体示例。通过一个简单的任务分配和回调机制,展示了如何利用进程池提高多核CPU的利用率,并行处理大量任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from multiprocessing import Process,Pool
import  time,os
def Foo(i):
    time.sleep(1)
    print("在子进程中",os.getpid())
    return i+100
def Bar(arg):
    print("执行id",os.getpid())
if __name__=="__main__":
     print(os.getpid())
     pool=Pool(5)#允许进程池同时放入5个进程
     for  i in range(50):
         pool.apply_async(func=Foo,args=(i,),callback=Bar)#注意apply_async是并行执行的意思,callback代表回调,也就是执行完Foo后再执行Bar,特别注意,调用callback里的函数是父进程,而不是子进程
         #pool.apply(func=Foo,args=(i,))#apply是串行执行,不支持callback
     print("end")
     pool.close()
     pool.join()#这里需要等待进程池的所有进程执行完毕,如果没有这个,关闭进程后,程序就停掉了,进程还没执行完

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值