在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  Python  網(wǎng)絡(luò)安全/ Python 多進(jìn)程通信如何合理的使用管道?

Python 多進(jìn)程通信如何合理的使用管道?

偽代碼如下:

cons_p1 = multiprocessing.Process(target=consumer,args=((output_p,input_p),1))
cons_p1.start()
cons_p2 = multiprocessing.Process(target=consumer,args=((output_p,input_p),1))
cons_p2.start()

以上2個消費(fèi)者分別在兩個進(jìn)程中執(zhí)行,等待 數(shù)據(jù):

while True:
    try:
        item = output_p.recv()     # 等待數(shù)據(jù)
    except EOFError:
        break
    print("%s消費(fèi):%s" % (id,item)) 
    

生產(chǎn)者再主進(jìn)程 生產(chǎn)數(shù)據(jù),并發(fā)送給管道:

input_p.send(item)

問題: 目前程序運(yùn)行結(jié)果,如果消費(fèi)的速度慢一些,兩個進(jìn)程可以正常從管道獲得數(shù)據(jù)。逐一消費(fèi)。
如果消費(fèi)速度快了。則某個進(jìn)程 會 EOFError 退出。

請問如何能在多進(jìn)程程序中,合理的共用管道?或者正確的姿勢是什么呢?

回答
編輯回答
伐木累

你這樣做不妥吧,一般只能是一個進(jìn)程寫,一個進(jìn)程讀。而你是一個寫,兩個讀。狼多肉少啊老哥。

2017年3月12日 17:01