加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python:进程池

发布时间:2020-12-17 00:01:19 所属栏目:Python 来源:网络整理
导读:1,进程可以无限开吗? 进程不可以无限开,cpu有十六核,代表可以同时处理16个任务,如果有160个进程,每个进程 处理需要0.01s,16核的处理器处理160个进程就需要0.5s,因为进程越多需要的时间越多。 2,进程池 multiprocessing multiprocessing += 1 == = P

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]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读