回覆列表
  • 1 # 一起來看影視

    程序間通訊方式有管道、訊號量、訊號、訊息佇列、共享記憶體、套接字六種。

    (1)管道分為有名管道和無名管道,其中無名管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用,一般用於兩個不同程序之間的通訊。有名管道也是一種半雙工的通訊方式,但它允許無親緣關係程序間的通訊。

    (2)訊號量是一個計數器,可以用來控制多個執行緒對共享資源的訪問,它不是用於交換大批資料,而用於多執行緒之間的同步。他常作為一種鎖機制。因此,主要作為程序間以及同一個程序內不同執行緒之間的同步手段。

    (3)訊號是一種比較複雜的通訊方式,用於通知接收程序某個時間已經發生。

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

    (5)共享記憶體就是對映一段能被其他程序所訪問的記憶體,這段共享記憶體由一個程序建立,但多個程序都可以訪問。他往往與其他通訊機制,如訊號量配合使用,來實現程序間的同步和通訊。

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

  • 2 # 使用者6575221595660

    win32程序作用編輯win32程序間通訊(IPC)Win32程序間通訊的方式主要有:(1)剪貼簿(ClipBoard);(2)動態資料交換(DynamicDataExchange);(3)部件物件模型(ComponentObjectModel);(4)檔案對映(FileMapping);(5)郵件槽(MailSlots);(6)管道(Pipes);(7)Win32套接字(Socket);(8)遠端過程呼叫(RemoteProcedureCall);(9)WM_COPYDATA訊息(WM_COPYDATAMessage)

  • 3 # 山東中公優就業

    (1)管道(Pipe):管道可用於具有親緣關係程序間的通訊,允許一個程序和另一個與它有共同祖先的程序之間進行通訊。

    (2)命名管道(named pipe):命名管道克服了管道沒有名字的限制,因此,除具有管道所具有的功能外,它還允許無親緣關係程序間的通訊。命名管道在檔案系統中有對應的檔名。命名管道透過命令mkfifo或系統呼叫mkfifo來建立。

     (3)訊號(Signal):訊號是比較複雜的通訊方式,用於通知接受程序有某種事件發生,除了用於程序間通訊外,程序還可以傳送訊號給程序本身;Linux除了支援Unix早期訊號語義函式sigal外,還支援語義符合Posix.1標準的訊號函式sigaction(實際上,該函式是基於BSD的,BSD為了實現可靠訊號機制,又能夠統一對外介面,用sigaction函式重新實現了signal函式)。

    (4)訊息(Message)佇列:訊息佇列是訊息的連結表,包括Posix訊息佇列system V訊息佇列。有足夠許可權的程序可以向佇列中新增訊息,被賦予讀許可權的程序則可以讀走佇列中的訊息。訊息佇列克服了訊號承載資訊量少,管道只能承載無格式位元組流以及緩衝區大小受限等缺

    (5)共享記憶體:使得多個程序可以訪問同一塊記憶體空間,是最快的可用IPC形式。是針對其他通訊機制執行效率較低而設計的。往往與其它通訊機制,如訊號量結合使用,來達到程序間的同步及互斥。

    (6)訊號量(semaphore):主要作為程序間以及同一程序不同執行緒之間的同步手段。

    (7)套接字(Socket):更為一般的程序間通訊機制,可用於不同機器之間的程序間通訊。起初是由Unix系統的BSD分支開發出來的,但現在一般可以移植到其它類Unix系統上:Linux和System V的變種都支援套接字。

  • 中秋節和大豐收的關聯?
  • 口腔潰瘍什麼藥療效最好?