如何在 Android、Mac 和 Windows 作業系統中實現程序間通訊 (IPC)?


程序間通訊 (Inter-process communication,IPC) 是一種在兩個或多個程序之間交換資料以對這些資料執行某些操作的技術。這些程序可能位於同一臺計算機上,也可能位於遠端位置。

程序間通訊的原因如下:

  • 在程序之間共享資訊

  • 加速某些程序的計算

  • 提高應用程式的模組化

現在,讓我們學習以下作業系統中實現的程序間通訊型別。

Android

Android 作業系統使用以下方法在兩個或多個程序之間共享資料。

Binder

這是在 Android 作業系統中程序間傳遞資料的一種方式。程序之間的通訊可以看作是它們之間某種型別的合作,以執行某些任務。

Binder 是一個服務類,允許其他活動和服務與其繫結。要為服務提供繫結,必須實現 onBind() 回撥方法。

Binder 的主要優點是,它們不僅允許向服務傳送資料,還可以呼叫服務上的方法。

Mac OS

以下是 Mac OS 中的一種 IPC 機制。

在分散式通知的程序間通訊中,一個通知中心管理資料的傳送和接收。所有客戶端應用程式都需要向中心管理器註冊為某些特定通知的觀察者,這些通知由其他應用程式釋出。當該特定物件在通知管理器上釋出某些通知時,它會將該通知傳送給所有觀察者。

這種通訊的主要缺點是,從在通知中心釋出資料到通知到達其他觀察者程序之間所需的時間延遲可能很高。

Windows

與其他作業系統一樣,Windows 也使用多種型別的程序間通訊。

管道 (Pipes)

管道是用於在兩個程序之間共享資料的一種機制,這些程序可以位於同一臺計算機上,也可以位於不同的計算機上。

Windows 作業系統中使用兩種型別的管道來共享資料,如下所示:

  • **匿名管道 (Anonymous Pipes)** - 匿名管道用於在相關程序之間共享資料。這裡,一個子程序在兩個程序之間共享,以在程序之間共享資訊。管道是單向的。因此,要在兩個程序之間進行雙向資訊交換,需要建立兩個匿名管道。

  • **命名管道 (Named Pipes)** - 命名管道用於在彼此無關的程序之間交換資料,即它們駐留在兩臺不同的計算機上。

Solaris

以下是 Solaris 使用的一種程序間通訊機制型別:

Solaris Doors

Solaris Doors 是 Solaris 作業系統使用的先進程序間通訊技術。它們輕量級、快速,並用於在程序之間共享資訊。

Solaris Doors 的工作機制

  • 它包含一個門伺服器,等待來自門客戶端的請求。

  • 客戶端使用少量有效負載呼叫門伺服器。

  • 門伺服器處理請求並回復給呼叫執行緒,即門客戶端。

更新於: 2021年11月30日

524 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.