本文最后更新于:星期四, 六月 18日 2020, 9:01 上午
Future接口
一个Future代表一个异步计算的结果。他提供了5个方法来确认计算是否完成,来等待异步任务的完成,来获取异步计算的结果。当计算完成,计算结果有且只能有通过get()
方法来获取,并且会阻塞调用者线程直到异步计算的任务完成。取消只能通过cancel()
方法。他提供了额外的方法来决定任务正常完成还是被取消。一旦一个计算任务完成,他将不再能够被取消。如果你要用Future是为了能够取消异步任务而不要他的返回结果,那么可以使用Future<?>并返回null作为异步任务的执行结果。
RunnableFuture接口
表示一个可以run的Future, run
方法的成功执行标识着Future的完成并运行他的调用者通过get()
来获取他的执行结果。
//除非run方法被取消,否则设置这个Future作为这个计算运行的结果。
void run();