了解ExecutorService接口

2022-04-22  本文已影响0人  墨_0b54
public interface ExecutorService extends Executor {

    //启动有序关闭,其中执行先前提交的任务,但不会接受新任务。如果已经关闭,调用没有额外的效果。
    //此方法不等待先前提交的任务完成执行。使用awaitTermination来做到这一点。
    void shutdown();

    //尝试停止所有正在执行的任务,停止等待任务的处理,并返回等待执行的任务列表。
    //此方法不等待主动执行的任务终止。使用awaitTermination来做到这一点。
    //除了尽最大努力停止处理正在执行的任务之外,没有任何保证.
    List<Runnable> shutdownNow();

    //如果此执行程序已关闭,则返回true。
    boolean isShutdown();

    //调用shutdown或shutdownNow后,如果所有任务都已完成,则返回true。
    boolean isTerminated();

    //在shutdown请求后阻塞,直到所有任务都完成执行,或者发生超时,或者当前线程被中断,以先发生者为准。
    boolean awaitTermination(long timeout, TimeUnit unit)
        throws InterruptedException;

    //提交一个有返回值的任务以供执行,并返回一个表示该任务待处理结果的 Future。 Future 的get方法将在成功完成后返回任务的结果。
    <T> Future<T> submit(Callable<T> task);

    //提交Runnable任务以执行并返回代表该任务的Future。Future的get方法将在成功完成后返回给定的result。
    <T> Future<T> submit(Runnable task, T result);

    //提交Runnable任务以执行并返回代表该任务的Future。Future 的get方法将在成功完成后返回null。
    Future<?> submit(Runnable task);

    //执行给定的任务,返回一个 Futures 列表,在所有完成时保存它们的状态和结果。
    <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks)
        throws InterruptedException;

    //执行给定的任务,当全部完成或超时到期时,返回保存其状态和结果的 Futures 列表。返回时,未完成的任务将被取消。
    <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks,
                                  long timeout, TimeUnit unit)
        throws InterruptedException;

    //执行给定的任务,返回已成功完成的任务的结果(即不抛出异常)。正常或异常返回时,取消未完成的任务。
    <T> T invokeAny(Collection<? extends Callable<T>> tasks)
        throws InterruptedException, ExecutionException;

    //执行给定任务,超时前返回已成功完成的任务的结果(即不抛出异常)。正常或异常返回时,取消未完成的任务。
    <T> T invokeAny(Collection<? extends Callable<T>> tasks,
                    long timeout, TimeUnit unit)
        throws InterruptedException, ExecutionException, TimeoutException;
}
上一篇 下一篇

猜你喜欢

热点阅读