1.進程與線程的區別
進程和線程都是cpu執行時間段的描述,只是時間段的大小不一樣。一個進程是由一個或者多個線程組成的,有一個主線程。
2.進程間的通信方式
通信方式:管道 系統ipc socket
2.1.管道
普通管道:半雙工模式,單向傳輸,只適用於父子進程之間的通信。
流管道:全雙工,雙向傳送,只適用父子進程之間的通信。
命名管道:半雙工,單向傳輸,使用於各進程之間。
2.2.系統ipc
管道:相當於普通管道。
信號量:相當於計數器,對臨界資源上的同步鎖。
信號:用於通知接收進程某事件已經發生。(比較複雜)
共享存儲(內存):通過映射,可接受多個進程同時訪問。一個進程創建 一個映射內存,其他進程通過映射直接訪問內存。是最快的一種ipc通信方式
2.3.socket
不同於其他通信方式, 它可用於不同進程或者其進程之間的通信。
3.管道通信於系統ipc通信的區別
管道通信: 優勢:支持所有的unix,最後一個進程訪問完管道,管道將被完全刪除。
劣勢:只用於父子進程之間的通信。
系統ipc:優勢:功能強大,可用於無關進程之間的通信。
劣勢:關鍵字key_t屬於內存標識,佔用的是內核資源