進(jìn)程間通信IPC

進(jìn)程間通信(IPC蜂林,InterProcess Communication)是指在不同進(jìn)程之間傳播或交換信息。IPC的方式通常有管道(包括無名管道和命名管道)、消息隊列匣摘、信號量亏吝、信號岭埠、共享內(nèi)存、Socket等蔚鸥。其中 Socket支持不同主機(jī)上的兩個進(jìn)程IPC惜论。

一、管道 (無名管道/有名管道)

無名管道( pipe )特點(diǎn):

a) 它是半雙工的(即數(shù)據(jù)只能在一個方向上流動)止喷,具有固定的讀端和寫端馆类。

b)它只能用于具有親緣關(guān)系的進(jìn)程之間的通信(也是父子進(jìn)程或者兄弟進(jìn)程之間)。

c)它可以看成是一種特殊的文件弹谁,對于它的讀寫也可以使用普通的read乾巧、write 等函數(shù)。但是它不是普通的文件预愤,并不屬于其他任何文件系統(tǒng)沟于,并且只存在于內(nèi)存中。

有名管道也是一種半雙工的通信方式,但是它允許無親緣關(guān)系進(jìn)程間的通信植康。

二旷太、消息隊列

消息隊列( message queue ) : 消息隊列是由消息的鏈表,存放在內(nèi)核中并由消息隊列標(biāo)識符標(biāo)識销睁。消息隊列克服了信號傳遞信息少供璧、管道只能承載無格式字節(jié)流以及緩沖區(qū)大小受限等缺點(diǎn)。

特點(diǎn):

a) 消息隊列是面向記錄的冻记,其中的消息具有特定的格式以及特定的優(yōu)先級嗜傅。

b) 消息隊列獨(dú)立于發(fā)送與接收進(jìn)程。進(jìn)程終止時檩赢,消息隊列及其內(nèi)容并不會被刪除吕嘀。

c) 消息隊列可以實(shí)現(xiàn)消息的隨機(jī)查詢,消息不一定要以先進(jìn)先出的次序讀取,也可以按消息的類型讀取。

三贞瞒、信號量

信號量( semophore ) : 信號量是一個計數(shù)器偶房,可以用來控制多個進(jìn)程對共享資源的訪問。它常作為一種鎖機(jī)制军浆,防止某進(jìn)程正在訪問共享資源時棕洋,其他進(jìn)程也訪問該資源。因此乒融,主要作為進(jìn)程間以及同一進(jìn)程內(nèi)不同線程之間的同步手段掰盘。

特點(diǎn):

a) 信號量用于進(jìn)程間同步摄悯,若要在進(jìn)程間傳遞數(shù)據(jù)需要結(jié)合共享內(nèi)存

b) 信號量基于操作系統(tǒng)的 PV 操作愧捕,程序?qū)π盘柫康牟僮鞫际窃硬僮鳌?/p>

c) 每次對信號量的 PV 操作不僅限于對信號量值加 1 或減 1奢驯,而且可以加減任意正整數(shù)。

d) 支持信號量組次绘。

四瘪阁、信號

信號 ( singal ) : 信號是一種比較復(fù)雜的通信方式,用于通知接收進(jìn)程某個事件已經(jīng)發(fā)生邮偎。

五管跺、共享內(nèi)存

共享內(nèi)存( shared memory ) :共享內(nèi)存就是映射一段能被其他進(jìn)程所訪問的內(nèi)存,這段共享內(nèi)存由一個進(jìn)程創(chuàng)建禾进,但多個進(jìn)程都可以訪問豁跑。共享內(nèi)存是最快的 IPC 方式,它是針對其他進(jìn)程間通信方式運(yùn)行效率低而專門設(shè)計的泻云。它往往與其他通信機(jī)制贩绕,如信號兩,配合使用壶愤,來實(shí)現(xiàn)進(jìn)程間的同步和通信。

特點(diǎn):

a) 共享內(nèi)存是最快的一種IPC馏鹤,因?yàn)檫M(jìn)程是直接對內(nèi)存進(jìn)行存取征椒。

b) 因?yàn)槎鄠€進(jìn)程可以同時操作,所以需要進(jìn)行同步湃累。

c) 信號量+共享內(nèi)存通常結(jié)合在一起使用勃救,信號量用來同步對共享內(nèi)存的訪問。

六治力、套接字

套接字( socket ) : 套解口也是一種進(jìn)程間通信機(jī)制蒙秒,與其他通信機(jī)制不同的是,它可用于不同機(jī)器間的進(jìn)程通信宵统。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晕讲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子马澈,更是在濱河造成了極大的恐慌瓢省,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痊班,死亡現(xiàn)場離奇詭異勤婚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)涤伐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進(jìn)店門馒胆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缨称,“玉大人,你說我怎么就攤上這事祝迂∧谰。” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵液兽,是天一觀的道長骂删。 經(jīng)常有香客問我,道長四啰,這世上最難降的妖魔是什么宁玫? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮柑晒,結(jié)果婚禮上欧瘪,老公的妹妹穿的比我還像新娘。我一直安慰自己匙赞,他們只是感情好佛掖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著涌庭,像睡著了一般芥被。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坐榆,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天拴魄,我揣著相機(jī)與錄音,去河邊找鬼席镀。 笑死匹中,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的豪诲。 我是一名探鬼主播顶捷,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼屎篱!你這毒婦竟也來了服赎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤交播,失蹤者是張志新(化名)和其女友劉穎专肪,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體堪侯,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嚎尤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了伍宦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芽死。...
    茶點(diǎn)故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡乏梁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出关贵,到底是詐尸還是另有隱情遇骑,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布揖曾,位于F島的核電站落萎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏炭剪。R本人自食惡果不足惜练链,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奴拦。 院中可真熱鬧媒鼓,春花似錦、人聲如沸错妖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽暂氯。三九已至潮模,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間痴施,已是汗流浹背擎厢。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晾剖,地道東北人。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓梯嗽,卻偏偏與公主長得像齿尽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子灯节,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容