guava/src/com/google/common/util/concurrent/Futures.java
@Beta
  public static <O> ListenableFuture<O> submitAsync(AsyncCallable<O> callable, Executor executor) {
    TrustedListenableFutureTask<O> task = TrustedListenableFutureTask.create(callable);
    executor.execute(task);
    return task;
  }
@Beta
  public static <O> ListenableFuture<O> submitAsync(AsyncCallable<O> callable, Executor executor) {
    TrustedListenableFutureTask<O> task = TrustedListenableFutureTask.create(callable);
    executor.execute(task);
    return task;
  }
@ Beta public static < O > ListenableFuture < O > submitAsync ( AsyncCallable < O > callable , Executor executor ) { TrustedListenableFutureTask < O > task = TrustedListenableFutureTask . create ( callable ) ; executor . execute ( task ) ; return task ; }
Executes {@code callable} on the specified {@code executor}, returning a {@code Future}.

@throws RejectedExecutionException if the task cannot be scheduled for execution
@since 23.0
Executes { @code callable } on the specified { @code executor } returning a { @code Future } .