python進程間的通訊之管道通訊

from mumultiprocessing import Process,Pipe

import os

def p1(i):

? ? i.send("i am p1!")

? ? print(os.getppid(),os.getpid())

def p2(i):

? ? i.send("i am p2!")

? ? print(os.getppid(),os.getpid())


if __name__=="__main__":

? ? p1_conn,p2_conn = Pipe()

? ? P1 = Process(target = p1,args=(p1_conn,))

? ? P2 = Process(target = p2,args =(p2_conn,))

? ? P1.start()

? ? P2.start()

? ? data1=P1.recv()

????print(data1)

????data2 = P2.recv()

? ? print(data2)

總結(jié):

????????? ? 1.向管道發(fā)送數(shù)據(jù)使用send函數(shù),從管道接收數(shù)據(jù)使用recv()函數(shù)

? ? ? ? ? ? 2.recv()函數(shù)為阻塞函數(shù),當(dāng)管道中數(shù)據(jù)為空的時候會阻塞

? ? ? ? ? ? 3.一次recv()只能接收一次send()的內(nèi)容

? ? ? ? ? ? 4.send可以發(fā)送的數(shù)據(jù)類型比較多樣,字符串,數(shù)字,列表等

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 進程間通信——隊列和管道(multiprocess.Queue、multiprocess.Pipe) 進程間通信 ...
    go以恒閱讀 1,843評論 0 3
  • 進程 操作系統(tǒng)背景知識 顧名思義,進程即正在執(zhí)行的一個過程。進程是對正在運行程序的一個抽象。 進程的概念起源于操作...
    go以恒閱讀 1,018評論 0 2
  • 進程進程的概念是需要理解的,進程是操作系統(tǒng)中正在運行的一個程序?qū)嵗?,操作系統(tǒng)通過進程操作原語來對其進行調(diào)度。操作系...
    zhile_doing閱讀 546評論 0 0
  • 網(wǎng)絡(luò)編程 一.楔子 你現(xiàn)在已經(jīng)學(xué)會了寫python代碼,假如你寫了兩個python文件a.py和b.py,分別去運...
    go以恒閱讀 2,244評論 0 6
  • 線程 操作系統(tǒng)線程理論 線程概念的引入背景 進程 之前我們已經(jīng)了解了操作系統(tǒng)中進程的概念,程序并不能單獨運行,只有...
    go以恒閱讀 1,793評論 0 6

友情鏈接更多精彩內(nèi)容