我在阅读akka文档后发现:Ask会发送消息并
返回未来并等待超时。同样,Tell将发送消息并
立即返回。我发现两者都相同,因为在这两种情况下请求都是
异步生成,必须等待响应。实际上是什么?
返回?在哪种情况下使用Ask比使用Tell更好,反之亦然?
答案 0 :(得分:1)
当你的演员Ask()等待另一个演员等待回复(你提到的未来)并最终暂停执行,直到Future值可用。 当你的演员Tell()给另一个演员时,它只是抛出了消息,不期待一个回复并继续执行。
所以第一个更适合演员之间的信息请求,另一个更适合发送信息。由您来决定您正在开展的项目的最佳选择。
答案 1 :(得分:0)
当你在演员中询问()时,发件人将等待Future响应 当你在演员中使用 Tell()时,你还必须发送回复将发送到的ActorRef。