兩個模式集成在併發中的處理訪問同步

學識都 人氣:6.14K

如今在理論上和實踐上己經存在很多成功的併發模型,但我們的目的並非要覆蓋與併發相關的所有方面,而是把主要的關注點放在幾個關鍵的模式上面。這些模式定義瞭如何構造和分割併發軟件,從而形成多個協作的線程,以及如何組織對由多個線程共享的領域對象的訪問。

兩個模式集成在併發中的處理訪問同步

1)Active Object(活動對象)模式

爲了減少服務器併發線程應用。它通過將服務請求和服務執行解耦合來提高併發性,它將對象化的'服務請求放到自己的控制線程中,並簡化了對它們的訪問。

2)Monitor Object(監控對象)模式

解決併發業務互相協調的問題。它通過同步併發方法的執行來保證同一時刻一個對象中只有一個方法在運行。它允許一個對象的多個方法以協作的方式確定它們的執行順序表。

3)模式的集成

Active Object 和Monitor Object 模式主要處理訪問同步,它們可以對對象併發調用的函數進行同步和調度。下圖展示了Active Object 和Monitor Object 是如何與模式語言集成在一起的。

這兩個模式的主要區別在於:

Active Object 模式:活動對象的方法是在服務器與其客戶端不同的線程中執行。

Monitor Object 模式:監控對象的方法則在其客戶端線程中執行。

所以Active Object 可以執行更爲複雜(儘管代價很大)的調度,來確定其方法的執行順序。

Active Object 主要用於在大的領域對象和子系統中支持併發,而Monitor Object 則主要用於實現較小的併發對象。