Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.google.common.util.concurrent
Class ListenableFutureTask<V>

    java.lang.Object
      java.util.concurrent.FutureTask<V>
          com.google.common.util.concurrent.ListenableFutureTask<V>

All Implemented Interfaces:
  ListenableFuture<V>, Runnable, Future<V>, RunnableFuture<V>

    public final class ListenableFutureTask<V>

extends FutureTask<V>
implements ListenableFuture<V>

A `FutureTask` that also implements the `ListenableFuture` interface. Subclasses must make sure to call `super.done()` if they also override the `done()` method, otherwise the listeners will not be called.

Since:
  1.0
Author:
  Sven Mawson

Constructor Summary
`ListenableFutureTask(Callable<V> callable)` Deprecated.
`ListenableFutureTask(Runnable runnable, V result)` Deprecated.

Method Summary
`void` | `addListener(Runnable listener, Executor exec)` Registers a listener to be run on the given executor.
`static
`<V> ListenableFutureTask<V>`
` | `create(Callable<V> callable)` Creates a `ListenableFutureTask` that will upon running, execute the given `Callable`.
`static
`<V> ListenableFutureTask<V>`
` | `create(Runnable runnable, V result)` Creates a `ListenableFutureTask` that will upon running, execute the given `Runnable`, and arrange that `get` will return the given result on successful completion.
`protected void` | `done()`

Methods inherited from class java.util.concurrent.FutureTask
`cancel, get, get, isCancelled, isDone, run, runAndReset, set, setException`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface java.util.concurrent.Future
`cancel, get, get, isCancelled, isDone`

Constructor Detail

### ListenableFutureTask

    @Beta
    @Deprecated
    public ListenableFutureTask(Callable<V> callable)

  Deprecated.

  Deprecated. Use `create(Callable)` instead. This method will be removed from Guava in Guava release 11.0. Creates a `ListenableFutureTask` that will upon running, execute the given `Callable`.

  Parameters:
    `callable` - the callable task

### ListenableFutureTask

    @Beta
    @Deprecated
    public ListenableFutureTask(Runnable runnable,
                                                @Nullable
                                                V result)

  Deprecated.

  Deprecated. Use `create(Runnable, Object)` instead. This method will be removed from Guava in Guava release 11.0. Creates a `ListenableFutureTask` that will upon running, execute the given `Runnable`, and arrange that `get` will return the given result on successful completion.

  Parameters:
    `runnable` - the runnable task
    `result` - the result to return on successful completion. If you don't need a particular result, consider using constructions of the form: `ListenableFuture<?> f = ListenableFutureTask.create(runnable, null)`

Method Detail

### create

    public static <V> ListenableFutureTask<V> create(Callable<V> callable)

  Creates a `ListenableFutureTask` that will upon running, execute the given `Callable`.

  Parameters:
    `callable` - the callable task
  Since:
    10.0

### create

    public static <V> ListenableFutureTask<V> create(Runnable runnable,
                                                     @Nullable
                                                     V result)

  Creates a `ListenableFutureTask` that will upon running, execute the given `Runnable`, and arrange that `get` will return the given result on successful completion.

  Parameters:
    `runnable` - the runnable task
    `result` - the result to return on successful completion. If you don't need a particular result, consider using constructions of the form: `ListenableFuture<?> f = ListenableFutureTask.create(runnable, null)`
  Since:
    10.0

### addListener

    public void addListener(Runnable listener,
                            Executor exec)

  Description copied from interface: `ListenableFuture`
  Registers a listener to be run on the given executor. The listener will run when the `Future`'s computation is complete or, if the computation is already complete, immediately.

  There is no guaranteed ordering of execution of listeners, but any listener added through this method is guaranteed to be called once the computation is complete.

  Exceptions thrown by a listener will be propagated up to the executor. Any exception thrown during `Executor.execute` (e.g., a `RejectedExecutionException` or an exception thrown by inline execution) will be caught and logged.

  Note: For fast, lightweight listeners that would be safe to execute in any thread, consider `MoreExecutors.sameThreadExecutor()`. For heavier listeners, `sameThreadExecutor()` carries some caveats: First, the thread that the listener runs in depends on whether the `Future` is done at the time it is added. In particular, if added late, listeners will run in the thread that called `addListener`. Second, listeners may run in an internal thread of the system responsible for the input `Future`, such as an RPC network thread. Finally, during the execution of a `sameThreadExecutor` listener, all other registered but unexecuted listeners are prevented from running, even if those listeners are to run in other executors.

  This is the most general listener interface. For common operations performed using listeners, see `Futures`

  Specified by:
    `addListener` in interface `ListenableFuture<V>`
  Parameters:
    `listener` - the listener to run when the computation is complete
    `exec` - the executor to run the listener in

### done

    protected void done()

  Overrides:
    `done` in class `FutureTask<V>`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2010-2011. All Rights Reserved.