1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Written by Doug Lea with assistance from members of JCP JSR-166 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Expert Group and released to the public domain, as explained at 4a807b4d808d2591894daf13aab179b2e9c46a2f5Jesse Wilson * http://creativecommons.org/publicdomain/zero/1.0/ 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage java.util.concurrent; 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * A task that returns a result and may throw an exception. 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Implementors define a single method with no arguments called 1291770798d8b9280d48d30df2ed7f63b3ed9b036fCalin Juravle * {@code call}. 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 1491770798d8b9280d48d30df2ed7f63b3ed9b036fCalin Juravle * <p>The {@code Callable} interface is similar to {@link 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.lang.Runnable}, in that both are designed for classes whose 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * instances are potentially executed by another thread. A 1791770798d8b9280d48d30df2ed7f63b3ed9b036fCalin Juravle * {@code Runnable}, however, does not return a result and cannot 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * throw a checked exception. 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 2091770798d8b9280d48d30df2ed7f63b3ed9b036fCalin Juravle * <p>The {@link Executors} class contains utility methods to 2191770798d8b9280d48d30df2ed7f63b3ed9b036fCalin Juravle * convert from other common forms to {@code Callable} classes. 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see Executor 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @since 1.5 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author Doug Lea 2691770798d8b9280d48d30df2ed7f63b3ed9b036fCalin Juravle * @param <V> the result type of method {@code call} 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic interface Callable<V> { 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Computes a result, or throws an exception if unable to do so. 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return computed result 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws Exception if unable to compute a result 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project V call() throws Exception; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 37