我發現那裏還有一個阿卡演員模型,所以我想知道阿卡的演員和斯卡拉的演員模型之間有什麼區別?阿卡的演員與斯卡拉的演員模型有什麼區別
回答
好吧,沒有。只有Actor模型,Akka actors和Scala actors是該模型的兩個實現。
所有演員模型認爲你的併發原語是演員,它可以:
收到一條消息,並決定下一步根據郵件的內容,包括做什麼:
發送消息任何演員,他們知道
創建新的角色
,並提供一定的保障,例如:
任何演員將一次只處理單個消息由演員X發送到演員ý
消息將在順序大公到達被送往
斯卡拉和阿卡演員在這個級別上沒有區別。
有關它們可以做什麼的差異,請參閱Different Scala Actor Implementations Overview。對我而言,最大的一點是Akka支持主管和ActorRegistry。
由接受的答案鏈接到的比較PDF似乎不再可用。以下是Akka開發人員的一個比較:http://akka.io/docs/misc/Comparison_between_4_actor_frameworks.pdf – Frank 2012-02-20 12:47:49
您的鏈接也是404。這是目前的工作:http://doc.akka.io/docs/misc/Comparison_between_4_actor_frameworks.pdf – 2013-04-01 17:50:56
這取決於您對「模型」的含義 - 您可以參考「執行模型」或「編程模型」(也可能是其他模型)。
對於執行模型,基本上有兩種:基於線程的或基於事件的。 Scala標準角色庫包含兩者。基於線程的每個角色使用一個線程,而基於事件的使用線程池。前者更直觀易懂,後者效率更高。 Akka建立在基於事件的模型之上。
對於編程模型,scala標準庫和Akka有很大的區別。在scala標準庫中,你基本上實現了「run」方法 - 如果你想等待傳入的消息,你會進入一個等待狀態(通過調用「receive」或「react」)。所以,編程模型遵循「線程隱喻」。但是,在Akka中,編程隱喻是你實現了一些生命週期方法 - 但是「運行」方法寫在框架內部。事實證明,這種編程模型同樣適用於基於事件的執行模型。
也有一個歷史的答案。斯卡拉的創造者認爲應該有一個演員的框架。喬納斯博內爾嘗試過,但並不完全滿意,所以他開始研究一種新的 - 演變成阿卡。然而,斯卡拉人認爲它比他們自己更好 - 所以在Jfokus 2011上他們宣佈Akka將成爲Scala的標準演員框架。但是,這種遷移需要一些時間。
是的,斯卡拉演員圖書館已經在2.11棄用http://docs.scala-lang.org/overviews/core/actors -migration-guide.html – anshumans 2014-06-30 23:35:33
- 1. 將簡單的斯卡拉遠程演員示例移植到阿卡演員
- 2. 斯卡拉2.8Beta1演員
- 3. 斯卡拉演員左掛
- 4. 單身斯卡拉演員?
- 5. 斯卡拉遠程演員
- 6. 阿卡演員Testkit
- 7. 在阿卡演員
- 8. 從阿卡演員
- 9. 談到斯卡拉演員阿卡演員:一個實例調用方法在
- 10. 斯卡拉/阿卡/吉斯動態注入兒童演員
- 11. 斯卡拉演員和工作人員
- 12. 是否有任何斯卡拉網絡庫與演員模型
- 13. 斯卡拉阿卡:如何更新「奴隸」演員的狀態
- 14. 播放斯卡拉阿卡的WebSockets改變演員路徑
- 15. 斯卡拉阿卡演員的行爲()函數
- 16. 阿卡演員選舉與演員的差異
- 17. 在阿卡·斯卡拉演員中使用單身人士
- 18. 從Java多線程到斯卡拉阿卡演員
- 19. 斯卡拉演員 - 最差的做法?
- 20. 使用斯卡拉演員的麻煩
- 21. 在Android上的斯卡拉演員
- 22. 斯卡拉的Guice和Akka演員
- 23. 阿卡演員isTerminated棄用
- 24. 阿卡關閉TCP演員
- 25. 阿卡和單身演員
- 26. 斯卡拉演員,期貨,承諾和阿卡之間有什麼區別和關係?
- 27. Akka和建在斯卡拉演員:當地使用有什麼區別?
- 28. 斯卡拉,阿卡,兒童演員爲什麼「丟棄非單位價值」?
- 29. 斯卡拉演員消息定義
- 30. 斯卡拉遠程演員異常
請參閱[斯卡拉中不同參與者實現之間的區別?](http://stackoverflow.com/q/5997018/53013) – 2012-02-24 16:31:29
斯卡拉演員現在已被棄用,以支持阿卡演員,那麼爲什麼要麻煩? :) http://goo.gl/VaPOu – 2013-04-01 17:59:06