scala - Actor (scala/akka) : is it implied that the receive method will be accessed in a threadsafe manner?

标签 scala thread-safety akka actor

我假设消息将以线程安全的方式接收和处理。但是,我一直在阅读(一些)akka/scala 文档,但我还没有遇到关键字“线程安全”。

最佳答案

这可能是因为actor 模型假设每个actor 实例都按顺序处理自己的邮箱。这意味着永远不会发生两个或多个并发线程执行单个 actor 实例的代码。从技术上讲,您可以在 actor 的类中创建一个方法(因为它仍然是一个对象)并从多个线程并发调用它,但这将与 actor 的使用规则大相径庭,您将“自担风险”,因为那样你将失去该模型的所有线程安全保证。

这也是Akka引入ActorRef的概念的原因之一。 - 一个句柄,它允许您通过消息传递而不是通过直接调用其方法来与 actor 进行通信。

关于scala - Actor (scala/akka) : is it implied that the receive method will be accessed in a threadsafe manner?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7772764/

相关文章:

c# - 自定义属性对象生命周期和隔离

scala - 端到端响应式(Reactive)流 RESTful 服务(又名 Back-Pressure over HTTP)

java - 使用 Akka Actor 的文件操作

java - Scala 方式来初始化成员?

scala - 如何使用 Scala 在 Play!2 中提供上传的文件?

scala - Future[Option[Future[Int]]] 到 Future[Option[Int]]

java - 在哪里可以找到 scala.collection.immutable.Iterable 的 "java"javadoc?

scala - 搜索 json key,如果其值为空字符串,则返回空列表

Java:易变性足以使类线程安全?

java - 引用更新线程安全吗?