1.管道(pipe):在內核中開闢緩衝區(管道)實現進程通信,一個讀端,一個寫端。
- 半雙工,數據只向一個方向流動,一端讀一端寫
- 只用於父子,兄弟進程:創建pipe時,兩個文件描述符指向管道兩端,fork子進程,繼承文件描述符
- 是獨立的文件系統,只存在於內存中
- 讀寫操作:滿——寫阻塞,空——讀阻塞
2.有名管道(FIFO):可用於非親屬進程間的通信。
3.消息隊列
- 獨立於進程,進程終止,內容不刪
- 可實現消息的隨機查詢,可按消息類型進行查詢
4.共享內存(最快IPC):傳遞數據不需執行進入內核的系統調用,少了2次文件複製(相比於pipe,FIFO,消息隊列)
5.信號量:PV操作(原子操作)