/guava/guava/src/com/google/common/util/concurrent/MoreExecutors.java
checkNotNull( runnable) ;checkNotNull( executorService) ;
checkNotNull ( executorService ) ;
ListeningExecutorService executorService, Collection<? extends Callable<T>> tasks, boolean timed, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { <extra_id_0> checkNotNull(unit); int ntasks = tasks.size(); checkArgument(ntasks > 0); List<Future<T>> futures = Lists.newArrayListWithCapacity(ntasks); BlockingQueue<Future<T>> futureQueue = Queues.newLinkedBlockingQueue(); long timeoutNanos = unit.toNanos(timeout);