我有以下内容:
val future = myActor ? Message
在我的演员中,我收到的消息是这样的:
sender ! Response
如果我执行以下操作并忽略响应,是否会产生负面影响?
myActor ! Message
也许我只是遗漏了文档中的内容。它是否像返回值的方法一样,调用者不会将返回值赋给任何东西?如果我从另一个演员调用那个调用会导致一些奇怪的线程问题或内存泄漏吗?我的单元测试似乎没有受到影响,但它是一种人为的设计。我希望我只是过度思考这个问题,也许我无法找到答案,因为这是一个愚蠢的问题,没有一个心智正常的人会问。
答案 0 :(得分:7)
临时轻量级演员(PromiseActorRef
)接收到询问模式Response
。
如果myActor ! Message
,则范围内应隐式ActorRef
。 Response
将被发送到此隐式ActorRef
。在您明确阅读之前,不会对此消息进行垃圾回收。
如果范围ActorRef
中没有隐式Actor.noSender
,则Response
将被转发到系统的deadLetters。
如果你从另一个演员发出这个电话,这个Response
将被传递给另一个演员的消息框。