一般我們寫的程式都是以單個程序的方式來執行的,比較少涉及到多程序。特別是在windows下,因為windows是按照執行緒來分配cpu時間片的,執行緒是最小的排程單位,所以在windows下更多的用到多執行緒,在同乙個程序裡建立多個執行緒來執行不同的任務,達到充分利用cpu的目的。執行緒之間可以共享程序的資源,比如記憶體、變數,但是多執行緒有乙個不好的地方,由於這些執行緒是在同乙個程序空間裡執行,所以
只要乙個執行緒崩潰,整個程序也就崩潰了
,程式就退出了。多程序由於是在不同的程序空間裡,乙個程序崩潰,不會影響到其它的程序,但是程序之間要交換資訊的話,就比較麻煩了,不像多執行緒可以簡單的通過乙個全域性變數來通訊。為了解決程序間交換資訊的問題,所以作業系統提供了程序間通訊(
ipc)的技術。
現在將linux
和windows
的程序間通訊方式好好總結一下:
windows的程序間的通訊方式有:
1. 檔案對映
2. 共享記憶體(是檔案對映的一種特殊情況)
3. 郵槽(mailslot)
(訊息佇列
messagequeue
)4. 匿名管道
5. 命名管道
6. 剪貼簿
7. 動態資料交換
8. 物件鏈結與嵌入
9. 遠端過程呼叫(rpc)-thrift
10. 動態鏈結庫
11. 套接字(socket)
12. wm_copydata
linux程序間通訊的方式有:
1. 管道
2. 訊號
3. 共享記憶體
4. 訊息佇列(
messagequeue)
5. 套接字(socket)
6. 訊號
windows和linux共有的程序間通訊方式:
1. 訊息(linux中叫做訊號)
2. 共享記憶體
3. 郵槽 (訊息佇列messagequeue)
4. 管道
5. 套接字(socket)
程序間通訊方式總結
一 linux系統程序間通訊的方式 二 windows程序間通訊的各種方法 程序是裝入記憶體並準備執行的程式,每個程序都有私有的虛擬位址空間,由 資料以及它可利用的系統資源 如檔案 管道等 組成。多程序 多執行緒是windows作業系統的乙個基本特徵。microsoft win32 api 提供了大...
程序間通訊方式總結
而對unix發展做出重大貢獻的兩大主力at t的貝爾實驗室及bsd 加州大學伯克利分校的伯克利軟體發布中心 在程序間通訊方面的側重點有所不同。前者對unix早期的程序間通訊手段進行了系統的改進和擴充,形成了 system v ipc 通訊程序侷限在單個計算機內 後者則跳過了該限制,形成了基於套介面 ...
程序間通訊方式總結
至 linux下的程序間通訊手段,程序間通訊 inter process communication 簡稱ipc 1.管道 pipe 以及有名管道 named pipe 管道可用於具有親緣關係程序間的通訊,有名管道克服了管道沒有名字的限制,因此,除具有管道所具有的功能外,它還允許無親緣關係程序間的通...