python:进程池

python:进程池,第1张

概述1,进程可以无限开吗?进程不可以无限开,cpu有十六核,代表可以同时处理16个任务,如果有160个进程,每个进程处理需要0.01s,16核的处理器处理160个进程就需要0.5s,因为进程越多需要的时间越多。2,进程池import osimport timeimport randomfrom multiprocessing import Poolfrom multiprocessing import Processdef func(i):i += 1if __name__ == '__main__':p = Pool(5) # 创建了5个进程。一般来说,这里的数值是核数#+1,如果不知道cpu的核数是多少,可以调用os.cpu_count()查看start = time.time()p.map(func,range(1000)) # target = func args=next(iterable) # [(1,2,3),1,2,3,4]p.close() # 是不允许再向进程池中添加任务p.join()print(time.time() - start)start = time.time()l = []for i in range(1000):p = Process(target=func,args=(i,)) # 创建了一百个进程p.start()l.append(p)[i.join() for i in l]print(time.time() - start)3,import timefrom multiprocessing import Pool# applydef func(i):time.sleep(1)i += 1# print(i)return i+1if __name__ == '__main__':p = Pool(5)res_l = []for i in range(20):# p.apply(func,args=(i,)) # apply是同步提交任务的机制res = p.apply_async(func,args=(i,)) # apply_async是异步提交任务的机制res_l.append(res)# print(res.get()) # 阻塞 :等待着任务结果p.close() # close必须加在join,不允许再添加新的任务了p.join() # 等待子进程结束再往下执行[print(i.get()) for i in res_l] 

1,进程可以无限开吗?

进程不可以无限开,cpu有十六核,代表可以同时处理16个任务,如果有160个进程,每个进程

处理需要0.01s,16核的处理器处理160个进程就需要0.5s,因为进程越多需要的时间越多。

2,进程池

multiprocessing multiprocessing += 1 == = Pool(5) start =1000)) p.close() (time.time() -== i range(1000= Process(target=func,args=(i,)) i (time.time() - start)

3,

multiprocessing

<span >def<span > func(i):
time.sleep(1<span >)
i += 1
<span >#<span > print(i)
<span >return i+1

<span >if <span >name == <span >'<span >main<span >'<span >:
p = Pool(5<span >)
res_l =<span > []
<span >for i <span >in range(20<span >):
<span >#<span > p.apply(func,)) # apply是同步提交任务的机制
res = p.apply_async(func,)) <span >#<span > apply_async是异步提交任务的机制
<span > res_l.append(res)
<span >#<span > print(res.get()) # 阻塞 :等待着任务结果
p.close() <span >#<span > close必须加在join,不允许再添加新的任务了
p.join() <span >#<span > 等待子进程结束再往下执行
[<span >print(i.get()) <span >for i <span >in res_l]

总结

以上是内存溢出为你收集整理的python:进程池全部内容,希望文章能够帮你解决python:进程池所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1208006.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-04
下一篇2022-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存