gpt4 book ai didi

java - 如何在不使用 Thread.sleep 命令的情况下执行 akka actor 中的整个代码?

转载 作者:行者123 更新时间:2023-12-02 04:11:18 25 4
gpt4 key购买 nike

我有一个示例 akka 代码

public class MainSystem {
public static void main(String... args) throws Exception {
final ActorSystem actorSystem = ActorSystem.create("actor-system");
Thread.sleep(5000);
final ActorRef actorRef = actorSystem.actorOf(SimpleActor.props(10));
final ActorRef actorRef2 = actorSystem.actorOf(ActorTwo.props(10));
System.out.println("actorref2: "+actorRef2);

actorRef2.tell(new Command("actor two cmd"), null);

actorRef.tell(new Command("CMD 1"), null);
actorRef.tell(new Command("CMD 2"), null);

actorRef2.tell(new Command("actor two cmd second"), null);


actorRef.tell(new Command("CMD 3"), null);
actorRef.tell(new Command("CMD 4"), null);
actorRef.tell(new Command("CMD 5"), null);

Thread.sleep(5000);

actorSystem.shutdown();
}
}

如果我避免最后一个 sleep 语句,代码将不会完全执行。我如何编写程序来完成 Actor 中的所有代码而不使用 sleep ?

最佳答案

您可以在接收并处理最后一条消息后从 Actor 内部关闭系统,并使用 actorSystem.awaitTermination() 等待终止。

编辑

Shut Down Patterns in Akka是一个很好的博客,解释了关闭模式。你现在可能不需要这么多,但你会得到一个要点。代码是scala的,但没那么复杂。

关于java - 如何在不使用 Thread.sleep 命令的情况下执行 akka actor 中的整个代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33761791/

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