1樓:master_柯
我個人的理解:
管程是將所有公共資源維護起來,相當於乙個倉庫,所有的程序取用資源都需要在這裡排隊;管程有條件變數,對於訪答旦問公共資源的程序的管理更加多元化。
而間接通訊是隻維護了伏舉纖需要用到的少量資源,缺仿也就是相當於乙個信箱,只有和這個信箱有關聯的程序才會在這裡排隊;間接通訊只設定了等待佇列,管理相對單一。
總的來說,間接通訊可以理解為輕量級的管程,更加單一和高效,管程則是間接通訊的強化擴充版,更加普適和方便。
2樓:下頁白水之戀
程序間通訊就是在不同程序之間傳播或交換資訊,那麼不同程序之間存在含悶著什麼雙方都可以訪問的介質呢?程序的使用者空間是互相獨立輪嘩的,一般而言是不能互相訪問的,唯一的例外是共享記憶體區。但是,系統空間卻是「公共場所」,所以核心顯然可以提供這樣的條件。
臘老行除此以外,那就是雙方都可以訪問的外設了。在這個意義上,兩個程序當然也可以通過磁碟上的普通檔案交換資訊,或者通過「登錄檔」或其它資料庫中的某些表項和記錄交換資訊。廣義上這也是程序間通訊的手段,但是一般都不把這算作「程序間通訊」。
程序間的通訊方式有
3樓:虎頭教說
程序間的通訊方式有:無名管道、高階管道、有名管道、訊息佇列、訊號量、訊號、共享記憶體、套接字。
1、無名管道(pipe):管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。
2、高階管道(popen):將另乙個程式當做乙個新的程序在當前程式程序中啟動,則它算是當前程式的子程序,這種方式我們成為高階管道方式。
3、有名管道(named pipe):有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。
4、訊息佇列(message queue):訊息佇列是由訊息的連結串列,存放在核心中並由訊息佇列識別符號標識。訊息佇列克服了訊號傳遞資訊少、管道只能承載無格式位元組流以及緩衝區大小受限等缺點。
5、訊號量(semophore):訊號量是乙個計數器,可以用來控制多個程序對共享資源的訪問。它常作為一種鎖機制,防止某程序正在訪問共享資源時,其他程序也訪問該資源。
因此,主要作為程序間以及同一程序內不同執行緒之間的同步手段。
6、訊號(sinal):訊號是一種比較複雜的通訊方式,用於通知接收程序某個事件已經發生。
7、共享記憶體(shared memory):共享記憶體就是對映一段能被其他程序所訪問的記憶體,這段共享記憶體由乙個程序建立,但多個程序都可以訪問。共享記憶體是最快的ipc方式,它是針對其他程序間通訊方式執行效率低而專門設計的。
8、套接字(socket):套解字也是一種程序間通訊機制,與其他通訊機制不同的是,它可用於不同機器間的程序通訊。
想間接間的說男生很花心的說說,想間接間的說一個男生很花心的說說
忘,做不到,情,制不止,百花爭豔,獨我自綻放,渴望雨水心中,為我灑下甘露,滋潤我們的世界 知識淵博董事長 江山易改,稟性難移 狗改不了吃屎 旁恆佔蘭芝 你這種人最好去當牛郎,不當委屈你了。可以天天換床伴,還有錢收。送給一個花心男生的話 你要是喜歡他,就對他說 如果那天你有喜歡的女孩子,你告訴我,我不...
直接賓語和間接賓語用什麼標註,直接賓語和間接賓語用法有什麼區別
有些及物動詞如give,pass,send,bring,tell,teach,show等,可以有兩個賓語 一個指人,叫直接賓語,一個指物,叫間接賓語。 旋風的小雨 親愛的,你的意思是用什麼來區分是不是?直接賓語和間接賓語用法有什麼區別 直接賓語和間接賓語怎樣區分 直接賓語和間接賓語的區別是什麼? 薄...
匿名管道實現程序間通訊為何管道資料不能重複讀取
幸巴達 沒錯,讀了一次後,緩衝區就空了,在讀的時候就等在那裡知道緩衝區有新的內容。 因為緩衝區的資料已經被取走了,所以再次讀取的時候,緩衝區是空的 裡面無資料可讀 四念住 他是阻塞的同步函式啊.沒資料到達.自然要等待了.直到有資料來了.他才接收.並函式返回.執行後面的函式 萬里猛 只要輸入 愛,龍嘯...