• 消息傳遞

    編輯
    本詞條由“匿名用戶” 建檔。

    消息傳遞

    編輯

    計算機科學中,消息傳遞是一種在計算機上調用行為(即運行程序)的技術。 調用程序向進程(可能是參與者或對象)發送消息,并依賴于該進程及其支持的基礎結構,然后選擇并運行一些適當的代碼。 消息傳遞不同于傳統編程,在傳統編程中,進程、子例程或函數直接通過名稱調用。 消息傳遞是某些并發模型和面向對象編程的關鍵。

    消息傳遞在現代計算機軟件中無處不在。 它被用作組成程序的對象相互協作的一種方式,以及運行在不同計算機(例如 Internet)上的對象和系統進行交互的一種方式。 消息傳遞可以通過各種機制實現,包括渠道。

    概覽

    編輯

    消息傳遞是一種在計算機上調用行為(即運行程序)的技術。 與通過名稱調用程序的傳統技術相比,消息傳遞使用對象模型來區分通用功能和特定實現。 調用程序發送消息并依賴對象來選擇和執行適當的代碼。 使用中間層的理由基本上分為兩類:封裝和分發。

    封裝是指軟件對象應該能夠在不知道或不關心這些服務是如何實現的情況下調用其他對象的服務。 封裝可以減少代碼邏輯量,使系統更易于維護。 例如,與其使用 IF-THEN 語句來確定調用哪個子例程或函數,開發人員可以只向對象發送消息,對象將根據其類型選擇適當的代碼。

    如何使用它的第一個例子是在計算機圖形學領域。 操作圖形對象涉及各種復雜性。 例如,簡單地使用正確的公式來計算封閉形狀的面積會根據形狀是三角形、矩形、橢圓形還是圓形而有所不同。 在傳統的計算機編程中,這會導致長長的 IF-THEN 語句測試形狀是什么類型的對象并調用適當的代碼。 面向對象的處理方法是定義一個名為 Shape 的類,它具有 Rectangle 和 Ellipse 等子類(它們又具有 Square 和 Circle 的子類),然后簡單地向任何 Shape 發送消息,要求它計算其面積。 然后,每個 Shape 對象將使用適合該類型對象的公式調用子類的方法。

    分布式消息傳遞為開發人員提供了一個體系結構層,該層提供公共服務來構建由在不同位置和不同時間在不同計算機上運行的子系統組成的系統。 當分布式對象發送消息時,消息傳遞層可以處理以下問題:

    • 在消息來源的不同位置使用不同的操作系統編程語言查找進程。
    • 如果處理消息的適當對象當前未運行,則將消息保存在隊列中,然后在該對象可用時調用消息。 此外,如果需要,存儲結果,直到發送對象準備好接收它。
    • 控制分布式事務的各種事務要求,例如 原子性、一致性、隔離性、持久性 (ACID) 測試數據

    同步與異步消息傳遞

    編輯

    同步消息傳遞

    同步消息傳遞發生在同時運行的對象之間。 它被面向對象的編程語言使用,例如 Java 和 Smalltalk。

    同步消息類似于同步函數調用; 正如函數調用者等待函數完成一樣,發送進程等待接收進程完成。 這會使某些應用程序無法進行同步通信。 例如,大型分布式系統的性能可能不夠好,無法使用。 如此龐大的分布式系統可能需要在其某些子系統因維護等原因而停機時運行。

    消息傳遞

    想象一下,一個繁忙的商務辦公室有 100 臺臺式計算機,它們使用同步消息傳遞相互發送電子郵件。 一名員工關閉計算機可能會導致其他 99 臺計算機死機,直到該員工重新打開計算機來處理一封電子郵件

    異步消息傳遞

    通過異步消息傳遞,當請求對象發送消息時,接收對象可能已關閉或忙碌。 繼續函數調用的類比,它就像一個立即返回的函數調用,不需要等待被調用的函數完成。 消息被發送到一個隊列,在那里它們被存儲,直到接收進程請求它們。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/195980/

    (1)
    詞條目錄
    1. 消息傳遞
    2. 概覽
    3. 同步與異步消息傳遞
    4. 同步消息傳遞
    5. 異步消息傳遞

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久