Akka 把未来的结果告诉自己

Akka 把未来的结果告诉自己,akka,Akka,将未来的结果直接传递给“自我”安全吗 在演员中: Future(hardWork()).pipeTo(self) 或者我们必须分配给val: val me = self Future(hardWork()).pipeTo(me) 显然,“self”是安全的,因此不需要val me=self // Completely safe, "self" is OK to close over // and it's an ActorRef, which is thread-safe Future {

将未来的结果直接传递给“自我”安全吗

在演员中:

Future(hardWork()).pipeTo(self)
或者我们必须分配给val:

val me = self
Future(hardWork()).pipeTo(me)

显然,“self”是安全的,因此不需要
val me=self

// Completely safe, "self" is OK to close over
// and it's an ActorRef, which is thread-safe
Future { expensiveCalculation() } onComplete { f => self ! f.value.get }

代码中的所有内容都是安全的,因为您没有关闭任何内容。您只需调用一个常规方法
pipeTo
,并传入一个常规参数。只有关闭某些东西(就像你在自己的回答中所做的那样)可能是危险的,但是在
self
的情况下没有危险,因为
self
是不可变的。

Yes-
implicit final val self=context.self