程序間通訊方式有哪些?各自有哪些優缺點?

2021-07-26 03:23:53 字數 835 閱讀 5854

1)

管道管道分為有名管道和無名管道

無名管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用.程序的親緣關係一般指的是父子關係。無明管道一般用於兩個不同程序之間的通訊。當乙個程序建立了乙個管道,並呼叫fork建立自己的乙個子程序後,父程序關閉讀管道端,子程序關閉寫管道端,這樣提供了兩個程序之間資料流動的一種方式。

有名管道也是一種半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。

2)訊號量

訊號量是乙個計數器,可以用來控制多個執行緒對共享資源的訪問.,它不是用於交換大批資料,而用於多執行緒之間的同步.它常作為一種鎖機制,防止某程序在訪問資源時其它程序也訪問該資源.因此,主要作為程序間以及同乙個程序內不同執行緒之間的同步手段.

3)訊號

訊號是一種比較複雜的通訊方式,用於通知接收程序某個事件已經發生.

4)訊息佇列

訊息佇列是訊息的鍊錶,存放在核心中並由訊息佇列識別符號標識.訊息佇列克服了訊號傳遞資訊少,管道只能承載無格式位元組流以及緩衝區大小受限等特點.訊息佇列是unix下不同程序之間可實現共享資源的一種機制,unix允許不同程序將格式化的資料流以訊息佇列形式傳送給任意程序.對訊息佇列具有操作許可權的程序都可以使用msget完成對訊息佇列的操作控制.通過使用訊息型別,程序可以按任何順序讀資訊,或為訊息安排優先順序順序.

5)共享記憶體

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

6)套接字:可用於不同及其間的程序通訊

uar通訊有哪些通訊方式 智慧型燈桿有哪些通訊方式

智慧型燈桿的解決方案有很多種通訊方式,目前的主流通訊方式是以光纖 rj45網路口 rs485為代表的有線通訊方式,也常根據實際應用需求搭建4g 5g等方式的無線通訊渠道,以下介紹幾種常用的有線和無線通訊方式。智慧型路燈通訊拓撲圖 光纖以其傳輸頻帶寬 抗干擾性高和訊號衰減小,而遠優於電纜 微波通訊的傳...

Vue元件間通訊方式都有哪些

開始之前,我們把元件間通訊這個詞進行拆分 都知道元件是vue最強大的功能之一,vue中每乙個.vue我們都可以視之為乙個元件 通訊指的是傳送者通過某種 以某種格式來傳遞資訊到收信者以達到某個目的。廣義上,任何資訊的交通都是通訊 元件間通訊即指元件 vue 通過某種方式來傳遞資訊以達到某個目的 舉個栗...

python程序通訊方式有幾種 程序間通訊

程序間通訊表示程序之間的資料交換。為了開發並行應用程式,需要在程序間交換資料。下圖顯示了多個子過程之間同步的各種通訊機制 各種通訊機制 在本節中,我們將了解各種通訊機制。機制如下所述 佇列佇列可以用於多程序程式。多處理模組的queue類與queue.queue類相似。因此,可以使用相同的api。mu...