天天看點

程序間的通信如何實作?

     答案:現在最常用的程序間通信的方式有信号、信号量、消息隊列、共享記憶體。所謂進

程通信,就是不同程序之間進行一些“接觸”。這種接觸有簡單,也有複雜。機制不同,複雜

度也不一樣。通信是一個廣義上的意義,不僅僅指傳遞一些message。它們的使用方法是基

本相同的,是以隻要掌握了一種使用方法,然後記住其他的使用方法就可以了。信号和信号

量是不同的,它們雖然都可用來實作同步和互斥,但前者是使用信号處理器來進行的,後者

是使用P、V操作來實作的。消息隊列是比較進階的一種程序間通信方法,因為它真的可以

在程序間傳送message,連傳送一個“I seek you”都可以。

      一個消息隊列可以被多個程序所共享(IPC就是在這個基礎上進行的);如果一個程序

的消息太多,一個消息隊列放不下,也可以用多于一個的消息隊列(不過可能管理會比較複

雜)。共享消息隊列的程序所發送的消息中除了message本身外還有一個标志,這個标志可

以指明該消息将由哪個程序或者是哪類程序接受。每一個共享消息隊列的程序針對這個隊列

也有自己的标志,可以用來聲明自己的身份。