1,IPC-PIPE:
管道 pipe
multiprocessing multiprocessing = Pipe()
p1.send(
(p1.recv())
2,用管道也能实现生产者消费者模型
multiprocessing
produce,consume=
baozi=
( %
produce,consume= i
== produce,consume= lock = c1=Process(target=consumer,args=((produce,consume), c2=Process(target=consumer, p1=Process(target=producer,10
()
3,IPC-Manager
multiprocessing multiprocessing
3 == == m.dict({= Process(target=func,args=] =<span style=”color: #0000ff”>from multiprocessing <span style=”color: #0000ff”>import<span style=”color: #000000″> Manager,Process,Lock
<span style=”color: #0000ff”>def<span style=”color: #000000″> work(d,lock):
lock.acquire()
d[<span style=”color: #800000″>'<span style=”color: #800000″>count<span style=”color: #800000″>’] -= 1<span style=”color: #000000″>
lock.release()
<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″>:
lock=<span style=”color: #000000″> Lock()
m =<span style=”color: #000000″> Manager()
dic=m.dict({<span style=”color: #800000″>'<span style=”color: #800000″>count<span style=”color: #800000″>’:100}) <span style=”color: #008000″>#<span style=”color: #008000″> 共享的数据
l =<span style=”color: #000000″> []
<span style=”color: #0000ff”>for i <span style=”color: #0000ff”>in range(100<span style=”color: #000000″>):
p=Process(target=work,args=<span style=”color: #000000″>(dic,lock))
p.start()
l.append(p)
[p.join() <span style=”color: #0000ff”>for p <span style=”color: #0000ff”>in<span style=”color: #000000″> l]
<span style=”color: #0000ff”>print(dic)