python線程,pipe管道通訊原理

Pipe管道:

* 管道實例化後會產生兩個通道,分別交給兩個進程
* 經過send和recv來交互數據,這是一個雙向的管道,child和parent能夠互相收發spa

from multiprocessing import Process, Pipe def f(conn): conn.send([42, None, 'hello']) conn.send([43,32]) print(conn.recv()) conn.close() if __name__ == '__main__': #Pipe實例化返回一個元祖對象,分別給到主進程端口,子進程端口 parent_conn, child_conn = Pipe() #其中1個端口對象做爲參數傳入至進程 p = Process(target=f, args=(child_conn,)) p.start() #數據傳遞,也是以隊列的形式進行傳遞,先發送先接受。 print(parent_conn.recv()) # prints "[42, None, 'hello']" print(parent_conn.recv()) # parent_conn.send('主進程發送給子進程的數據') p.join()
相關文章
相關標籤/搜索