久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 進(jìn)程之前的通信方式

進(jìn)程之前的通信方式

來源:千鋒教育
發(fā)布人:wjy
時間: 2022-09-07 16:57:02 1662541022

(1)管道通信管道是一種最基本的進(jìn)程間通信機制。管道就是操作系統(tǒng)在內(nèi)核中開辟的一段緩沖區(qū),進(jìn)程1可以將需要交互的數(shù)據(jù)拷貝到這段緩沖區(qū),進(jìn)程2就可以讀取了。管道的特點:只能單向通信只能血緣關(guān)系的進(jìn)程進(jìn)行通信依賴于文件系統(tǒng)生命周期隨進(jìn)程面向字節(jié)流的服務(wù)管道內(nèi)部提供了同步機制

(2)消息隊列通信消息隊列就是一個消息的列表。用戶可以在消息隊列中添加消息、讀取消息等。消息隊列提供了一種從一個進(jìn)程向另一個進(jìn)程發(fā)送一個數(shù)據(jù)塊的方法。 每個數(shù)據(jù)塊都被認(rèn)為含有一個類型,接收進(jìn)程可以獨立地接收含有不同類型的數(shù)據(jù)結(jié)構(gòu)??梢酝ㄟ^發(fā)送消息來避免命名管道的同步和阻塞問題。但是消息隊列與命名管道一樣,每個數(shù)據(jù)塊都有一個最大長度的限制。使用消息隊列進(jìn)行進(jìn)程間通信,可能會收到數(shù)據(jù)塊最大長度的限制約束等,這也是這種通信方式的缺點。如果頻繁的發(fā)生進(jìn)程間的通信行為,那么進(jìn)程需要頻繁地讀取隊列中的數(shù)據(jù)到內(nèi)存,相當(dāng)于間接地從一個進(jìn)程拷貝到另一個進(jìn)程,這需要花費時間。

進(jìn)程之前的通信方式

(3)信號量通信共享內(nèi)存最大的問題就是多進(jìn)程競爭內(nèi)存的問題,就像類似于線程安全問題。我們可以使用信號量來解決這個問題。信號量的本質(zhì)就是一個計數(shù)器,用來實現(xiàn)進(jìn)程之間的互斥與同步。例如信號量的初始值是 1,然后 a 進(jìn)程來訪問內(nèi)存1的時候,我們就把信號量的值設(shè)為 0,然后進(jìn)程b 也要來訪問內(nèi)存1的時候,看到信號量的值為 0 就知道已經(jīng)有進(jìn)程在訪問內(nèi)存1了,這個時候進(jìn)程 b 就會訪問不了內(nèi)存1。所以說,信號量也是進(jìn)程之間的一種通信方式。

(4)信號通信信號(Signals )是Unix系統(tǒng)中使用的最古老的進(jìn)程間通信的方法之一。操作系統(tǒng)通過信號來通知進(jìn)程系統(tǒng)中發(fā)生了某種預(yù)先規(guī)定好的事件(一組事件中的一個),它也是用戶進(jìn)程之間通信和同步的一種原始機制。

(5)共享內(nèi)存通信共享內(nèi)存就是映射一段能被其他進(jìn)程所訪問的內(nèi)存,這段共享內(nèi)存由一個進(jìn)程創(chuàng)建,但多個進(jìn)程都可以訪問(使多個進(jìn)程可以訪問同一塊內(nèi)存空間)。共享內(nèi)存是最快的 IPC 方式,它是針對其他進(jìn)程間通信方式運行效率低而專門設(shè)計的。它往往與其他通信機制,如信號量,配合使用,來實現(xiàn)進(jìn)程間的同步和通信。

(6)套接字通信上面說的共享內(nèi)存、管道、信號量、消息隊列,他們都是多個進(jìn)程在一臺主機之間的通信,那兩個相隔幾千里的進(jìn)程能夠進(jìn)行通信嗎?答是必須的,這個時候 Socket 這家伙就派上用場了,例如我們平時通過瀏覽器發(fā)起一個 http 請求,然后服務(wù)器給你返回對應(yīng)的數(shù)據(jù),這種就是采用 Socket 的通信方式了。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
軟件定制開發(fā)中的敏捷開發(fā)是什么?

軟件定制開發(fā)中的敏捷開發(fā)是什么軟件定制開發(fā)中的敏捷開發(fā),從宏觀上看,是一個高度關(guān)注人員交互,持續(xù)開發(fā)與交付,接受需求變更并適應(yīng)環(huán)境變化...詳情>>

2023-10-14 13:24:57
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個全面的物聯(lián)網(wǎng)開發(fā)平臺,它為眾多硬件平臺和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡化了開發(fā)過程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動備份有什么區(qū)別?

1、定義和目標(biāo)不同云快照的主要目標(biāo)是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時間點后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動備份的主要目標(biāo)...詳情>>

2023-10-14 12:48:59
服務(wù)器為什么要用Linux?

服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨特的優(yōu)勢和特點。包括其...詳情>>

2023-10-14 12:34:11
ORM解決的主要問題是什么?

ORM(對象關(guān)系映射)解決的主要問題是將關(guān)系數(shù)據(jù)庫與面向?qū)ο缶幊讨g的映射困境。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)以表格的形式存儲,而在面向?qū)ο?..詳情>>

2023-10-14 12:26:19