6
これは動作するコードです。それはActor(Greeter)にメッセージを送り、答えを返すのを待ちます。 しかし、現在のスレッドをブロックします。Akkaの俳優からの応答としての未来のonSuccessの扱い
public class Future1Blocking {
public static void main(String[] args) throws Exception {
ActorSystem system = ActorSystem.create("system");
final ActorRef actorRef = system.actorOf(Props.create(Greeter.class), "greeter");
Timeout timeout = new Timeout(Duration.create(5, "seconds"));
Future<Object> future = Patterns.ask(actorRef, Greeter.Msg.GREET, timeout);
// this blocks current running thread
Greeter.Msg result = (Greeter.Msg) Await.result(future, timeout.duration());
System.out.println(result);
}
}
私の例では、現在の呼び出し元のスレッドをブロックせずに結果を得るためにfuture.onSuccess
を使用するための可能な方法は何ですか?