模块  java.base
软件包  java.util.concurrent

Class AbstractExecutorService

  • 实现的所有接口
    ExecutorExecutorService
    已知直接子类:
    ForkJoinPoolThreadPoolExecutor

    public abstract class AbstractExecutorService
    extends Object
    implements ExecutorService
    提供ExecutorService执行方法的默认实现。 此类实现submitinvokeAnyinvokeAll使用方法RunnableFuture通过返回newTaskFor ,其默认为FutureTask类此包中提供。 例如, submit(Runnable)的实现创建了一个执行并返回的关联RunnableFuture 子类可以覆盖newTaskFor方法返回RunnableFuture其他实现比FutureTask

    扩展示例 下面是一个类的草图,它自定义ThreadPoolExecutor以使用CustomTask类而不是默认的FutureTask

       public class CustomThreadPoolExecutor extends ThreadPoolExecutor { static class CustomTask<V> implements RunnableFuture<V> {...} protected <V> RunnableFuture<V> newTaskFor(Callable<V> c) { return new CustomTask<V>(c); } protected <V> RunnableFuture<V> newTaskFor(Runnable r, V v) { return new CustomTask<V>(r, v); } // ... add constructors, etc. } 
    从以下版本开始:
    1.5
    • 构造方法详细信息

      • AbstractExecutorService

        public AbstractExecutorService()
    • 方法详细信息

      • newTaskFor

        protected <T> RunnableFuture<T> newTaskFor​(Runnable runnable,
                                                   T value)
        对于给定的runnable和默认值,返回 RunnableFuture
        参数类型
        T - 给定值的类型
        参数
        runnable - 正在包装的可运行任务
        value - 返回的未来的默认值
        结果
        RunnableFuture ,运行时将运行底层的runnable,作为 Future ,将产生给定值作为其结果并提供取消基础任务
        从以下版本开始:
        1.6
      • newTaskFor

        protected <T> RunnableFuture<T> newTaskFor​(Callable<T> callable)
        返回给定可调用任务的 RunnableFuture
        参数类型
        T - 可调用结果的类型
        参数
        callable - 正在包装的可调用任务
        结果
        RunnableFuture ,在运行时,将调用底层可调用对象,并且作为 Future ,将产生可调用对象的结果作为其结果,并提供取消基础任务
        从以下版本开始:
        1.6
      • submit

        public <T> Future<T> submit​(Runnable task,
                                    T result)
        从界面复制的说明: ExecutorService
        提交Runnable任务以执行并返回表示该任务的Future。 Future's get方法将在成功完成后返回给定结果。
        Specified by:
        submit在界面 ExecutorService
        参数类型
        T - 结果的类型
        参数
        task - 要提交的任务
        result - 要返回的结果
        结果
        表示未完成任务的Future
        异常
        RejectedExecutionException - 如果无法安排任务执行
        NullPointerException - 如果任务为空
      • submit

        public <T> Future<T> submit​(Callable<T> task)
        从界面复制的说明: ExecutorService
        提交值返回任务以执行并返回表示任务的挂起结果的Future。 Future的get方法将在成功完成后返回任务的结果。

        如果您想立即阻止等待任务,可以使用result = exec.submit(aCallable).get();表单的result = exec.submit(aCallable).get();

        注意: Executors类包含一组方法,可以将一些其他常见的类似闭包的对象(例如, PrivilegedAction)转换Callable表单,以便可以提交它们。

        Specified by:
        submit ,界面 ExecutorService
        参数类型
        T - 任务结果的类型
        参数
        task - 要提交的任务
        结果
        表示未完成任务的Future
        异常
        RejectedExecutionException - 如果无法安排任务执行
        NullPointerException - 如果任务为空