Actor模型

什麼 是Actor模型

Actor 模型是個“古老”的東西,是1973年就提出的一個分佈式併發編程模型。Actor模型在erlang語言中得到廣泛支持和應用(順便說一下,想要學習併發編程,erlang是首選)。目前java中
也出現了很多支持actor模型的庫:akka、killim、jetlang等等。

Actor模型原理

Actor模型=(數據+動作)+消息。
Actor模型內部的狀態由自己的動作來維護,外部線程不能直接調用對象的動作,也不能訪問,必須通過消息才能觸發動作,可以說,Actor模型是面向對象模型在併發編程領域的擴展。
使用Disruptor這樣無鎖隊列我們也可以自己實現簡單的Actor模型,讓一個普通對象與外界的交互調用通過Disruptor消息隊列實現,其本質是通過增加請求的緩衝區並異步處理來增加響應速度。

缺點

儘管Actor模型可以顯著提高系統的併發,但在使用Actor模型過程中仍可能會碰到很多問題。典型的問題有:
* 死鎖問題
* 隊列溢出問題
* 細粒度控制問題。由於多個actor並不共享狀態,僅通過消息傳遞來進行交流,所以不太適合實施細粒度的並行

發佈了31 篇原創文章 · 獲贊 12 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章