管道用於具有親緣關係的程序間通訊。有名管道除具有管道的功能外,它還允許無親緣關係的程序間的通訊。管道和有名管道均為半雙工的通訊方式。管道只能承載無格式位元組流以及緩衝區大小受限。
1. 管道
a) pipe
b) fopen
2. 有名管道
a) fifo
i. mkfifo
通知其它程序某個事件的發生。這種通訊方式傳輸的資訊量比較少。
是程序間/執行緒間對臨界資源進行同步的機制。
傳輸的資訊相對管道,訊號,訊號量較多;緩衝區也增大。但相對執行效率還是偏低。
傳輸的資訊量可控,效率最高。空間大小可以控制。
unix socket: 同一主機
socket(tcp/udp/raw/…): 不同主機
程序間通訊,同步
程序間通訊 管道 pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。有名管道 named pipe 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。訊號量 semophore 訊號量是乙個計數器,可以用來控...
程序間通訊與多執行緒同步
常見的程序間通訊方式包括 管道 pipe 共享記憶體 sharedmemory 訊息佇列 messagequeue 訊號量 semaphore socket 套接字 常見的多執行緒同步方式主有 是臨界區 critical section 互斥鎖 mutex 訊號量 semaphore 事件 even...
執行緒間的通訊 同步方式與程序間通訊方式
1 執行緒間的通訊方式 2 執行緒間的同步方式 各個執行緒可以訪問程序中的公共變數,資源,所以使用多執行緒的過程中需要注意的問題是如何防止兩個或兩個以上的執行緒同時訪問同乙個資料,以免破壞資料的完整性。資料之間的相互制約包括 1 直接制約關係,即乙個執行緒的處理結果,為另乙個執行緒的輸入,因此執行緒...