首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带期货的Akka螺纹安全

带期货的Akka螺纹安全
EN

Stack Overflow用户
提问于 2015-05-12 19:40:56
回答 1查看 641关注 0票数 1

我有一个演员,他的状态是变化无常的。在我的接收方法中,我使用模式匹配消息,并调用一些将返回未来的服务。这个未来将修改我的Actor实例中的状态。这种状态不安全吗?既然未来将在不同的线程中执行,我的Actor中的状态是否保证线程安全?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-12 19:53:21

不,这将不是线程安全,正如您正确地假设的那样。期货运行在执行上下文提供的任何线程上。

解决这个问题的方法是把它输送回同一个演员那里。所有参与者的输入都必须是消息。你可以找到documentation here

一些示例代码:

代码语言:javascript
复制
import akka.pattern.pipe

//... inside the Actor somewhere:
val futureResult: Future[YourType] = something.thatReturnsAFuture()
futureResult.pipeTo(self)

然后修改您的接收块,以便在将来完成后处理结果,并将其发送回此参与者:

代码语言:javascript
复制
case result: YourType => //...
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30200014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档