OSDN Git Service

2013.10.24
[uclinux-h8/uClinux-dist.git] / lib / classpath / external / jsr166 / java / util / concurrent / Callable.java
1 /*
2  * Written by Doug Lea with assistance from members of JCP JSR-166
3  * Expert Group and released to the public domain, as explained at
4  * http://creativecommons.org/licenses/publicdomain
5  */
6
7 package java.util.concurrent;
8
9 /**
10  * A task that returns a result and may throw an exception.
11  * Implementors define a single method with no arguments called
12  * <tt>call</tt>.
13  *
14  * <p>The <tt>Callable</tt> interface is similar to {@link
15  * java.lang.Runnable}, in that both are designed for classes whose
16  * instances are potentially executed by another thread.  A
17  * <tt>Runnable</tt>, however, does not return a result and cannot
18  * throw a checked exception.
19  *
20  * <p> The {@link Executors} class contains utility methods to
21  * convert from other common forms to <tt>Callable</tt> classes.
22  *
23  * @see Executor
24  * @since 1.5
25  * @author Doug Lea
26  * @param <V> the result type of method <tt>call</tt>
27  */
28 public interface Callable<V> {
29     /**
30      * Computes a result, or throws an exception if unable to do so.
31      *
32      * @return computed result
33      * @throws Exception if unable to compute a result
34      */
35     V call() throws Exception;
36 }