我是阿卡的新手。我有4个演员。
Actor1 向 Actor4 发送 Message1。Actor2 将 Message2 发送给 Actor4。Actor3 向 Actor4 发送 Message3。
Actor4 应该在收到 1 条 Message1 类型的消息、1 条 Message2 类型的消息和 2 条 Message3 类型的消息时创建 Message4。
消息 4 =(消息 1、消息 2、消息 3a、消息 3b、消息 3c)
这样做的最佳方法是什么?
我是阿卡的新手。我有4个演员。
Actor1 向 Actor4 发送 Message1。Actor2 将 Message2 发送给 Actor4。Actor3 向 Actor4 发送 Message3。
Actor4 应该在收到 1 条 Message1 类型的消息、1 条 Message2 类型的消息和 2 条 Message3 类型的消息时创建 Message4。
消息 4 =(消息 1、消息 2、消息 3a、消息 3b、消息 3c)
这样做的最佳方法是什么?
如果您的任务依赖于其他任务的完成而其他任务可以并行完成,您想使用期货,我已经回答了这样的问题,这可能是一个重复的问题,只是更一般的变体并行执行任务并尽可能跨资源分配它们的问题,但无论如何,在我看来,futures 为这个问题提供了一个更干净的解决方案,请在此处查看我的答案 Executing Dependent tasks in parallel in Java。
我同意 Snickers3192,您可以使用期货。您还可以查看 Jamie Allen 的 Cameo Pattern 之类的东西。我在另一个 stackoverflow 线程中创建了一些粗略的示例。这些都是 Scala 而不是 Java。