首页 Python python:进程池

python:进程池

1,进程可以无限开吗?进程不可以无限开,cpu有十六核,代表可以同时处理16个任务,如果有160个进程,每个进程处理需要0.01s,16核的处理器处理160个进程就需要0.5s,因为进程越多需要的时间越多。2,进程池import osimport timeimport randomfrom multiproce

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 style=”color: #0000ff”>def<span style=”color: #000000″> func(i):
time.sleep(1<span style=”color: #000000″>)
i += 1
<span style=”color: #008000″>#<span style=”color: #008000″> print(i)
<span style=”color: #0000ff”>return i+1

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

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/kaifa/python/20200729/7332.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部