gpt4 book ai didi

java - 通过 Actor 选择将消息转发给所有子级是否比迭代子 ActorRef 更有效?

转载 作者:行者123 更新时间:2023-12-01 11:58:17 25 4
gpt4 key购买 nike

我有一个场景,当 Actor 收到特定消息时,它必须将该消息转发给当时存在的所有子级。

我想我有两个选择来解决这个问题。

getContext().actorSelection("*").forward(message, getContext());

getContext().getChildren().forEach(child -> child.forward(message, getContext()));

如果不完全理解 Actor 选择的内部实现,就很难知道哪个会表现更好。我计划以我期望需要的规模执行一些基准测试,但希望有经验的用户对此有任何见解。

谢谢

最佳答案

我没有对它进行基准测试,但我正在研究这两个选项的实现。两者在性能方面实际上应该非常相似,因为它们最终使用了可迭代的 actor 引用。

另一方面,您可以check字符串“*”被翻译成一个表达式,而 actorSelection 中的转发只会将该表达式与该 actor 的子级相匹配,然后将消息转发给每个匹配的子级。

matchingChildren.foreach(_.tell(sel.msg, sender))

并在需要时递归地执行此操作(例如在“*/*”中)。

所以我建议使用 getChildren 来避免解析字符串(“*”)的重载,将其翻译为正则表达式,并过滤匹配的子项。

关于java - 通过 Actor 选择将消息转发给所有子级是否比迭代子 ActorRef 更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28189059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com