學習linux程序通訊即可以了解系統的執行方式,也可以加深對執行緒通訊的了解。
linux通訊可以使用訊號量,自旋鎖,systemv,管道通訊,套接字通訊。
1、訊號量如何保證原子性,使用atomic原子操作;非原子操作修改是先將資料讀入cpu,然後運算,再將資料寫入記憶體,這三個步驟中是無法保證原子性。適用於**量大,程序會休眠。
2、自旋鎖適用與短**量,這樣執行緒不會休眠,否則會影響速度和效率。
3、systemv 訊號量,訊息佇列,共享記憶體。
4、管道通訊,子程序fork了父程序,所以也複製了父程序中的管道物件,所以可以跨程序通訊。
5、套接字網路通訊
Linux程序通訊
linux程序通訊 無名管道主要用於有親緣關係的程序通訊,其位於外存區域,但在檔案系統中不可見。在實際應用中,程序通訊往往發生在無關程序之間,此種情形下,若仍想使用管道,則必須使用有名管道,也稱命名管道或fifo檔案。這種型別的管道在檔案系統中可見,建立時需要指定具體路徑和檔名,管道建立之後,可用l...
Linux 程序通訊
程序通訊 通訊 communication 意味著在程序間傳送資料。也把程序間控制資訊的交換稱為低階通訊,而把程序間大批量資料的交換稱為高階通訊。程序通訊的型別 1 共享儲存器系統 記憶體 共享儲存器系統為了傳送大量資料,在儲存器中劃出一塊共享儲存區,諸程序可通過對共享儲存區進行讀資料或寫資料以實現...
Linux 程序通訊
linux下程序通訊的八種方法 管道 pipe 命名管道 fifo 共享記憶體 shared memory 訊息佇列 message queue 訊號量 semaphore 訊號 signal 套接字 socket linux命令中,執行乙個程式,後面加上 代表後台執行,也就是執行這個程式的同時,你...