You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.3 KiB
67 lines
1.3 KiB
/*
|
|
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*/
|
|
|
|
/*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
* Written by Doug Lea with assistance from members of JCP JSR-166
|
|
* Expert Group and released to the public domain, as explained at
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
|
|
package java.util.concurrent;
|
|
|
|
/**
|
|
* A task that returns a result and may throw an exception.
|
|
* Implementors define a single method with no arguments called
|
|
* {@code call}.
|
|
*
|
|
* <p>The {@code Callable} interface is similar to {@link
|
|
* java.lang.Runnable}, in that both are designed for classes whose
|
|
* instances are potentially executed by another thread. A
|
|
* {@code Runnable}, however, does not return a result and cannot
|
|
* throw a checked exception.
|
|
*
|
|
* <p>The {@link Executors} class contains utility methods to
|
|
* convert from other common forms to {@code Callable} classes.
|
|
*
|
|
* @see Executor
|
|
* @since 1.5
|
|
* @author Doug Lea
|
|
* @param <V> the result type of method {@code call}
|
|
*/
|
|
@FunctionalInterface
|
|
public interface Callable<V> {
|
|
/**
|
|
* Computes a result, or throws an exception if unable to do so.
|
|
*
|
|
* @return computed result
|
|
* @throws Exception if unable to compute a result
|
|
*/
|
|
V call() throws Exception;
|
|
}
|