运行Future

Riker可以执行并推动Future完成。 实际上,内部参与者由调度员作为Future执行。 这意味着Riker可以与演员一起在同一个调度员上运行任何 Future

ActorSystemContext都有一个接受 Future运行的execute方法:

let handle = system.execute(async move {
    format!("some_val_{}", i)
});

assert_eq!(block_on(handle).unwrap(), format!("some_val_{}", i));

sys.execute计划将来执行,调度程序将使用调度程序的线程池将其驱动完成。 execute返回future :: future :: RemoteHandle future,可用于提取结果。

注意 : 默认的Riker调度程序使用Futures crate的ThreadPool来运行 Future

在下一节中,我们将了解如何测试Riker应用程序。