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)