Home » openjdk-7 » java » util » concurrent » [javadoc | source]

    1   /*
    2    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    3    *
    4    * This code is free software; you can redistribute it and/or modify it
    5    * under the terms of the GNU General Public License version 2 only, as
    6    * published by the Free Software Foundation.  Oracle designates this
    7    * particular file as subject to the "Classpath" exception as provided
    8    * by Oracle in the LICENSE file that accompanied this code.
    9    *
   10    * This code is distributed in the hope that it will be useful, but WITHOUT
   11    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   12    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   13    * version 2 for more details (a copy is included in the LICENSE file that
   14    * accompanied this code).
   15    *
   16    * You should have received a copy of the GNU General Public License version
   17    * 2 along with this work; if not, write to the Free Software Foundation,
   18    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   19    *
   20    * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   21    * or visit www.oracle.com if you need additional information or have any
   22    * questions.
   23    */
   24   
   25   /*
   26    * This file is available under and governed by the GNU General Public
   27    * License version 2 only, as published by the Free Software Foundation.
   28    * However, the following notice accompanied the original version of this
   29    * file:
   30    *
   31    * Written by Doug Lea with assistance from members of JCP JSR-166
   32    * Expert Group and released to the public domain, as explained at
   33    * http://creativecommons.org/publicdomain/zero/1.0/
   34    */
   35   
   36   package java.util.concurrent;
   37   
   38   /**
   39    * A task that returns a result and may throw an exception.
   40    * Implementors define a single method with no arguments called
   41    * <tt>call</tt>.
   42    *
   43    * <p>The <tt>Callable</tt> interface is similar to {@link
   44    * java.lang.Runnable}, in that both are designed for classes whose
   45    * instances are potentially executed by another thread.  A
   46    * <tt>Runnable</tt>, however, does not return a result and cannot
   47    * throw a checked exception.
   48    *
   49    * <p> The {@link Executors} class contains utility methods to
   50    * convert from other common forms to <tt>Callable</tt> classes.
   51    *
   52    * @see Executor
   53    * @since 1.5
   54    * @author Doug Lea
   55    * @param <V> the result type of method <tt>call</tt>
   56    */
   57   public interface Callable<V> {
   58       /**
   59        * Computes a result, or throws an exception if unable to do so.
   60        *
   61        * @return computed result
   62        * @throws Exception if unable to compute a result
   63        */
   64       V call() throws Exception;
   65   }

Home » openjdk-7 » java » util » concurrent » [javadoc | source]