from multiprocessing import Pipe,Process
def func(conn1):
while True:
msg = conn1.recv()
if msg is None: break
print(msg)
if __name__ == '__main__':
conn1,conn2 = Pipe()
Process(target=func,args=(conn1,)).start()
for i in range(10):
conn2.send('吃了吗%d'%i)
conn2.send(None)
from multiprocessing import Pipe,Process
def func(conn1,conn2):
conn2.close()
while True:
try:
msg = conn1.recv()
print(msg)
except EOFError:
conn1.close()
break
if __name__ == '__main__':
conn1,conn2 = Pipe()
Process(target=func,args=(conn1,conn2)).start()
conn1.close()
for i in range(10):
conn2.send('吃了吗%d'%i)
conn2.close()
from multiprocessing import Pipe,Process
import time,random
def producer(con,pro,name,food):
con.close()
for i in range(4):
time.sleep(random.random())
f = '%s生产%s%d'%(name,food,i)
print(f)
pro.send(f)
pro.close()
def consumer(con,pro,name):
pro.close()
while True:
try:
f = con.recv()
print('%s吃了%s'%(name,f))
time.sleep(random.random())
except EOFError:
con.close()
break
if __name__ == '__main__':
con,pro = Pipe()
p = Process(target=producer,args=(con,pro,'alex','泔水'))
c = Process(target=consumer,args=(con,pro,'jin'))
p.start()
c.start()
con.close()
pro.close()
from multiprocessing import Pipe,Process,Lock
import time,random
def producer(con,pro,n):
con.close()
for i in range(n):
pro.send(i)
pro.send(None)
pro.send(None)
pro.close()
def consumer(con,pro,name,lock):
pro.close()
while True:
lock.acquire()
baozi= con.recv()
lock.release()
if baozi:
print('%s收到包子%d'%(name,baozi))
else:
con.close()
break
if __name__ == '__main__':
con,pro = Pipe()
lock = Lock()
p = Process(target=producer,args=(con,pro,30))
c = Process(target=consumer,args=(con,pro,'c',lock))
c2 = Process(target=consumer,args=(con,pro,'c2',lock))
p.start()
c.start()
c2.start()
con.close()
pro.close()