这只是一个学习的例子。
我有一个拥有100万个ID列表的演员 (这只是一个简单的例子。在现实生活中,这些演员可以代表银行账户,我会发送给他们"告诉"或者#34;广播"消息。所以我想把他们全部留在同时在记忆中)
我希望这个演员创造100万个儿童演员(每个id一个)
是否存在比此代码更平行的方式?
receive (Msg,..) {
ids.stream().forEach(
id -> {
context().actorOf(MyActor.props(id));
}
);
}
答案 0 :(得分:1)
为什么不为孩子们使用BroadcastRouter
?
val children = system.actorOf(Props[ChildrenActor].withRouter(
BroadcastRouter(nrOfInstances = amountOfChildren)))
这是为了您每次只需要向所有孩子发送消息。如果您需要向孩子发送广播和个人消息,您可以使用ConsistentHashingRouter
来映射带有子ID的消息。
答案 1 :(得分:0)
您可以将集合转换为并行集合以使其并行遍历:
scala> (0 to 20).par.foreach(print)
10211345071289151618192061171314