as:Actor 和 Agent 的组合
akka: combination of Actor and Agent
Akka还提供了鲜为人知的原语Agent,它通过新值异步更新(或者通过修改他的值的函数)ans可以从任何线程同步读取。
问题:在单JVM Actor系统中,如何结合这些方法:具有异步更新的原语。仅消息(如 Actor
),但可以以线程安全方式直接读取哪个状态(如 Agent
)?
我非常感谢 link 任何相关 discussion/project/sample。
目前我找到的解决方案:
- 明显的可能性是
Actor
在 receive()
中更新 Agent
。但我想知道是否有更优雅和高性能的解决方案。
- Scalaz Agent,但首选不依赖 scalaz 的解决方案。
- 半途肮脏的解决方案:打破
Actor
通过发布(在传出消息中)读取actor状态的功能分离,类似于Agent.get()
。线程安全必须手动处理。
- 解决方法:让
Actor
更新 receive()
中的一些外部共享状态。线程安全必须手动处理。
Akka还提供了鲜为人知的原语Agent,它通过新值异步更新(或者通过修改他的值的函数)ans可以从任何线程同步读取。
问题:在单JVM Actor系统中,如何结合这些方法:具有异步更新的原语。仅消息(如 Actor
),但可以以线程安全方式直接读取哪个状态(如 Agent
)?
我非常感谢 link 任何相关 discussion/project/sample。
目前我找到的解决方案:
- 明显的可能性是
Actor
在receive()
中更新Agent
。但我想知道是否有更优雅和高性能的解决方案。 - Scalaz Agent,但首选不依赖 scalaz 的解决方案。
- 半途肮脏的解决方案:打破
Actor
通过发布(在传出消息中)读取actor状态的功能分离,类似于Agent.get()
。线程安全必须手动处理。 - 解决方法:让
Actor
更新receive()
中的一些外部共享状态。线程安全必须手动处理。