常見的程序間通訊形式

2021-08-07 20:20:47 字數 598 閱讀 7628

一、管道( pipe ):管道是一種半雙工的通訊方式,通常包含讀管道和寫管道,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。pipe()

二、有名管道 (named pipe/fifo) : 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。mkfifo()

三、訊號量( semophore ) : 訊號量是一種計數器,相當於鎖,是程序間的一種同步形式。

四、訊息佇列( message queue ) : 訊息佇列是由訊息的鍊錶,存放在核心中並由訊息佇列識別符號標識。訊息佇列克服了訊號傳遞資訊少、管道只能承載無格式位元組流以及緩衝區大小受限等缺點。

五、訊號 ( sinal ) : 訊號是一種比較複雜的通訊方式,用於通知接收程序某個事件已經發生。

六、共享記憶體( shared memory ) :共享記憶體就是對映一段能被其他程序所訪問的記憶體,這段共享記憶體由乙個程序建立,但多個程序都可以訪問。共享記憶體是最快的 ipc 方式,它是針對其他程序間通訊方式執行效率低而專門設計的。它往往與其他通訊機制,如訊號兩,配合使用,來實現程序間的同步和通訊。

七、套接字( socket ) :可以跨機器進行程序間通訊的方式,區分了客戶端和服務端 。

php程序間通訊 yoc PHP程序間通訊

php是用c編寫的,因此它對系統底層api的操作與c很像,同大多數語言一樣,php程序間通訊的方式有以下幾種 訊息佇列,管道,共享記憶體,socket和訊號。本文是對這幾種通訊方式對整理 管道通訊pipe 管道用於承載簡稱之間的通訊資料。為了方便理解,可以將管道比作檔案,程序a將資料寫到管道p中,然...

程序間的通訊

程序間的通訊就麻煩一些了,訊號的種類就有 種,可以在終端中輸入kill l檢視!就先說幾個今天剛學的吧 sigint,這個訊號是由硬體產生的,比如按下ctrl c時就會產生這個訊號。sigalrm,這個訊號是由alrm unsigned int arg 函式產生的,就是間隔arg秒時間後產生siga...

程序間的通訊

可以用來通訊的有 管道 pipe 管道可用於具有親緣關係程序間的通訊,允許乙個程序和另乙個與它有共同祖先的程序之間進行通訊。命名管道 named pipe 命名管道克服了管道沒有名字的限制,因此,除具有管道所具有的功能外,它還允許無親緣關係程序間的通訊。命名管道在檔案系統中有對應的檔名。命名管道通過...