/* * @(#)Future.java */ package java.util.concurrent; /** * A Future represents the result of an asynchronous computation. * Methods are provided to check if the computation is complete, * to wait for its completion, and to retrieve the result of the * computation. The result can only be retrieved when the computation * has completed. The get method will block until the computation * has completed. Once the computation has completed, the result cannot * be changed, nor can the computation be restarted or cancelled. * *
* Sample Usage (Note that the following classes are all * made-up.)
*
* class ArchiveSearcher { String search(String target); } * class App { * Executor executor = ... * ArchiveSearcher searcher = ... * void showSearch(final String target) throws InterruptedException { * Future<String> future = * new FutureTask<String>(new Callable<String>() { * public String call() { * return searcher.search(target); * }}); * executor.execute(future); * displayOtherThings(); // do other things while searching * try { * displayText(future.get()); // use future * } catch (ExecutionException ex) { cleanup(); return; } * } * } ** * @since 1.5 * @see FutureTask * @see Executor * * @spec JSR-166 * @revised $Date: 2003/08/08 20:05:07 $ * @editor $Author: tim $ * @author Doug Lea */ public interface Future