从库中返回 Java Future 的最佳实践

Best Practice for Returning Java Future from Library

我正在研究实现跳跃点搜索算法的 Java 库。您可以调用两个公开的方法来 运行 搜索。同步一个和 return 一个 Java Future 个结果。

public Future<Queue<T>> findPath(T start, T goal) {
    FutureTask<Queue<T>> future = new FutureTask<>(() -> findPathSync(start, goal));
    future.run();
    return future;
}

我想知道的是,在这种情况下最佳做法是什么。图书馆应该 运行 FutureTask 和 return Future,还是 return FutureTask 最终用户必须知道任务还没有真正执行吗?

谢谢!

我真的不能代表 "best practice" 但是,作为用户,如果我调用一个方法,我的默认假设是它触发了某些东西 - 它启动了执行 - 通常 "construct only"范式是为建造者模式或工厂保留的。

所以你上面的代码是我所期望的行为,我觉得我最常看到的,即使不是总是,即使在其他系统中也是如此(即Node.js)