Python併發程式設計 管道

2022-08-24 21:12:08 字數 1605 閱讀 1206

from multiprocessing import pipe, process

def func(conn1,conn2):

conn2.close() #子程序只需使用connection1,故關閉connection2

while true:

try:

msg = conn1.recv()

print(msg)

except eoferror: #沒收資料接收的時候,才丟擲的異常

conn1.close()

break

if __name__ == '__main__':

conn1,conn2 = pipe()#建立乙個管道,管道返回兩個connection

process(target=func, args=(conn1,conn2)).start()

conn1.close() #主程序只需要乙個connection,故關閉乙個

for i in range(20):

conn2.send('吃了嗎') #主程序傳送

conn2.close() #主程序關閉connection2

from multiprocessing import process,pipe,lock

def consumer(p,name,lock):

produce, consume=p

produce.close()

while true:

lock.acquire()

baozi=consume.recv()

lock.release()

if baozi:

print('%s 收到包子:%s' %(name,baozi))

else:

consume.close()

break

def producer(p,n):

produce, consume=p

consume.close()

for i in range(n):

produce.send(i)

produce.send(none)

produce.send(none)

produce.close()

if __name__ == '__main__':

produce,consume=pipe()

lock = lock()

c1=process(target=consumer,args=((produce,consume),'c1',lock))

c2=process(target=consumer,args=((produce,consume),'c2',lock))

p1=process(target=producer,args=((produce,consume),10))

c1.start()

c2.start()

p1.start()

produce.close()

consume.close()

c1.join()

c2.join()

p1.join()

print('主程序')

python 併發程式設計 管道

1.管道 from multiprocessing import pipe conn1,conn2 pipe 返回兩個值 conn1.send wdc 傳送print conn2.recv 接收conn2.send yhf print conn1.recv 結果 雙向通訊 2.在程序中傳遞資料 fr...

Python 併發程式設計

1.程序 執行緒 協程基本概念,建立 使用 2.協程的應用 生成器 第三方模組 3.併發的實踐 程式執行起來之後建立的乙個程序。建立程序已經學過使用multiprocessing.process類建立 1 multiprocessing.process 指定target引數,建立物件 2 繼承mul...

python併發程式設計 程序,併發

1.程序是乙個正在執行的程式,或者說是程式執行的過程,程序是個抽象概念 程序起源於作業系統,是作業系統最核心的概念,作業系統所有其他的概念都是圍繞程序展開 研究程序最底層就是在研究作業系統底層 2.序列 程序 乙個任務完完整整的執行完畢後,在執行下乙個任務 3.併發 程序 看起來多個任務是同時執行即...