11d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert/*
21d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * This file is a modified version of
31d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/main/java/util/concurrent/ExecutorService.java?revision=1.51
41d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * which contained the following notice:
51d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert *
61d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * Written by Doug Lea with assistance from members of JCP JSR-166
71d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * Expert Group and released to the public domain, as explained at
81d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert * http://creativecommons.org/publicdomain/zero/1.0/
91d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert */
101d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
111d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertpackage java.util.concurrent;
121d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
131d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport java.util.Collection;
141d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertimport java.util.List;
151d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
161d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertpublic interface ExecutorService extends Executor {
171d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  void shutdown();
181d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
191d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  List<Runnable> shutdownNow();
201d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
211d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  boolean isShutdown();
221d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
231d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  boolean isTerminated();
241d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
251d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  boolean awaitTermination(long timeout, TimeUnit unit)
261d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert      throws InterruptedException;
271d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
281d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  <T> Future<T> submit(Callable<T> task);
291d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
301d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  <T> Future<T> submit(Runnable task, T result);
311d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
321d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  Future<?> submit(Runnable task);
331d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
341d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks)
351d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert      throws InterruptedException;
361d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
371d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  <T> List<Future<T>> invokeAll(
381d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert      Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)
391d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert      throws InterruptedException;
401d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
411d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  <T> T invokeAny(Collection<? extends Callable<T>> tasks)
421d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert      throws InterruptedException, ExecutionException;
431d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
441d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  <T> T invokeAny(
451d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert      Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)
461d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert      throws InterruptedException, ExecutionException, TimeoutException;
471d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert}
48