0
主要用於akka原始人Actor - 任何狀態變化或狀態查詢通過異步消息的人辦理。阿卡:演員的組合和代理
Akka還提供了一個鮮爲人知的原始碼Agent,它是由新值(或通過修改其值的函數)異步更新的。ans可以從任何線程同步讀取。
問題:在單JVM演員系統,如何將這些方法結合起來:具有通過異步更新原始。只有消息(如Actor
),但哪個狀態可以直接以線程安全方式讀取(如Agent
)?
我真的很感激鏈接到任何相關的討論/項目/樣本。
解決方案,我發現迄今:
- 明顯的可能性是有
Actor
其更新Agent
。但我想知道是否有更優雅的&高性能解決方案。 - Scalaz Agent,但沒有scalaz依賴性的解決方案將是首選。
- 中途骯髒的解決方案:中斷
Actor
通過發佈(在外發郵件中)功能來讀取actor的狀態,類似於Agent.get()
。線程安全性必須手工處理。 - 變通方法:讓
Actor
更新中的某些外部共享狀態。線程安全性必須手工處理。