0
主要用于akka原始人Actor - 任何状态变化或状态查询通过异步消息的人办理。阿卡:演员的组合和代理
Akka还提供了一个鲜为人知的原始码Agent,它是由新值(或通过修改其值的函数)异步更新的。ans可以从任何线程同步读取。
问题:在单JVM演员系统,如何将这些方法结合起来:具有通过异步更新原始。只有消息(如Actor
),但哪个状态可以直接以线程安全方式读取(如Agent
)?
我真的很感激链接到任何相关的讨论/项目/样本。
解决方案,我发现迄今:
- 明显的可能性是有
Actor
其更新Agent
。但我想知道是否有更优雅的&高性能解决方案。 - Scalaz Agent,但没有scalaz依赖性的解决方案将是首选。
- 中途肮脏的解决方案:中断
Actor
通过发布(在外发邮件中)功能来读取actor的状态,类似于Agent.get()
。线程安全性必须手工处理。 - 变通方法:让
Actor
更新中的某些外部共享状态。线程安全性必须手工处理。