Kilim 簡介 一種用於實現 Java 併發性的角色框架

角色模型是一種不同的併發進程建模方式。與通過共享內存與鎖交互的線程不同,角色模型利用了 “角色” 概念,使用郵箱來傳遞異步消息。在這裏,郵箱 類似於實際生活中的郵箱,消息可以存儲並供其他角色檢索,以便處理。郵箱有效地將各個進程彼此分開,而不用共享內存中的變量。
角色充當着獨立且完全不同的實體,不會共享內存來進行通信。實際上,角色僅能通過郵箱通信。角色模型中沒有鎖和同步塊,所以不會出現由它們引發的問題,比如死鎖、嚴重的丟失更新問題。而且,角色能夠併發工作,而不是採用某種順序方式。因此,角色更加安全(不需要鎖和同步),角色模型本身能夠處理協調問題。在本質上,角色模型使併發編程更加簡單了。
角色模型並不是一個新概念,它已經存在很長時間了。一些語言(比如 Erlang 和 Scala)的併發模型就是基於角色的,而不是基於線程。實際上,Erlang 在企業環境中的成功(Erlang 由 Ericsson 創建,在電信領域有着悠久的歷史)無疑使角色模型變得更加流行,曝光率更高,而且這也使它成爲了其他語言的一種可行的選擇。Erlang 是角色模型更安全的併發編程方法的一個傑出示例。
不幸的是,角色模型並沒有植入到 Java 平臺中,但我們可以通過各種方式使用它。JVM 對替代語言的開放性意味着您可以通過 Java 平臺語言(比如 Scala 或 Groovy)來利用角色。另外,您可以試用一種支持角色模型且基於 Java 的庫,比如 Kilim。
http://www.malhar.net/sriram/kilim/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章