## com.google.common.util.concurrent
Class JdkFutureAdapters

    java.lang.Object
      com.google.common.util.concurrent.JdkFutureAdapters

    @Beta
    public final class JdkFutureAdapters

extends Object

Utilities necessary for working with libraries that supply plain `Future` instances. Note that, whenver possible, it is strongly preferred to modify those libraries to return `ListenableFuture` directly.

Since:
  10.0 (replacing `Futures.makeListenable`, which existed in 1.0)
Author:
  Sven Mawson

Method Summary

`static

`<V> ListenableFuture<V>`

`

`listenInPoolThread(Future<V> future)`
Assigns a thread to the given `Future` to provide `ListenableFuture` functionality.

`static

`<V> ListenableFuture<V>`

`

`listenInPoolThread(Future<V> future, Executor executor)`
Submits a blocking task for the given `Future` to provide `ListenableFuture` functionality.

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

Method Detail

### listenInPoolThread

    public static <V> ListenableFuture<V> listenInPoolThread(Future<V> future)

  Assigns a thread to the given `Future` to provide `ListenableFuture` functionality.

  Warning: If the input future does not already implement `ListenableFuture`, the returned future will emulate `ListenableFuture.addListener(java.lang.Runnable, java.util.concurrent.Executor)` by taking a thread from an internal, unbounded pool at the first call to `addListener` and holding it until the future is done.

  Prefer to create `ListenableFuture` instances with `SettableFuture`, `MoreExecutors.listeningDecorator( java.util.concurrent.ExecutorService)`, `ListenableFutureTask`, `AbstractFuture`, and other utilities over creating plain `Future` instances to be upgraded to `ListenableFuture` after the fact.

### listenInPoolThread

    public static <V> ListenableFuture<V> listenInPoolThread(Future<V> future,
                                                             Executor executor)

  Submits a blocking task for the given `Future` to provide `ListenableFuture` functionality.

  Warning: If the input future does not already implement `ListenableFuture`, the returned future will emulate `ListenableFuture.addListener(java.lang.Runnable, java.util.concurrent.Executor)` by submitting a task to the given executor at at the first call to `addListener`. The task must be started by the executor promptly, or else the returned `ListenableFuture` may fail to work. The task's execution consists of blocking until the input future is done, so each call to this method may claim and hold a thread for an arbitrary length of time. Use of bounded executors or other executors that may fail to execute a task promptly may result in deadlocks.

  Prefer to create `ListenableFuture` instances with `SettableFuture`, `MoreExecutors.listeningDecorator( java.util.concurrent.ExecutorService)`, `ListenableFutureTask`, `AbstractFuture`, and other utilities over creating plain `Future` instances to be upgraded to `ListenableFuture` after the fact.

  Since:
    12.0

Copyright © 2010-2012. All Rights Reserved.