我正在阅读有关Futures作为异步执行任务的简洁方法,并且一度回想起它说任务不会被执行,除非您从Future读取返回值(试图复制)懒惰的评价或许)。我觉得这不准确。
有人可以澄清这是否真的存在?
如果您想要执行某些异步逻辑而不想读取其返回值,该怎么办? (例如我在我的应用程序中写入数据库)
答案 0 :(得分:1)
Future表示异步计算的结果。提供方法来检查计算是否完成,等待其完成,以及检索计算结果。
Future
是等待结果。未来的对象引用了后来的可用结果。即时呼叫即时返回,允许您继续使用代码而不是忙于等待答案。
如果你只想执行异步而不是等待结果,你可以使用Threads,或者你的情况下可能使用Executors(或ExecutorServices)。
执行提交的Runnable任务的对象。此接口提供了一种将任务提交与每个任务的运行机制分离的方法,包括线程使用,调度等的详细信息。
ExecutorService扩展了Executor以实现某些控制功能。