/* * @(#)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
*
* class Image { ... }; * class ImageRenderer { Image render(byte[] raw); } * class App { * Executor executor = ... * ImageRenderer renderer = ... * void display(final byte[] rawimage) throws InterruptedException { * Future futureImage = * new FutureTask(new Callable() { * public Object call() { * return renderer.render(rawImage); * }}); * executor.execute(futureImage); * drawBorders(); // do other things while executing * drawCaption(); * try { * drawImage((Image)(futureImage.get())); // use future * } * catch (ExecutionException ex) { cleanup(); return; } * } * } ** * @since 1.5 * @see FutureTask * @see Executor * * @spec JSR-166 * @revised $Date: 2003/05/27 18:14:40 $ * @editor $Author: dl $ */ public interface Future