我正在开发一个Java库,实现跳点搜索算法。该库提供了两个公开方法来运行搜索:一个是同步的方法,另一个返回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
并返回Future
,还是应该返回FutureTask
,让最终用户知道任务尚未执行?谢谢!