多线程开发

Executor ExecutorService ThreadPoolExecutor Executors

  • Executor 比较简单,只有一个execute回调接口;
  • ExecutorService则比较丰富,提供了对线程池的管理;
  • ThreadPoolExecutor是ExecutorService的具体实现,
  • Executors是工具类,对ThreadPoolExecutor做了一些简单的包装

Future 和FutureTask

  • 它是个接口。ThreadPoolExecutor的submit方法返回的就是一个Future的实现,这个实现就是FutureTask的一个具体实例。

  • FutureTask是Futrue的具体实现类。FutureTask除了帮助ThreadPool很好的实现了对加入线程池任务的Future支持外,也为我们提供了很大的便利,使得我们自己也可以实现支持Future的任务调度。
    ExecutorService executor = Executors.newFixedThreadPool(5);
    FutureTask<List> futureTask = new FutureTask<List>(()-> {
    @Override
    public List call() throws Exception {
    return "hello";
    }
    });
    executor .submit(futureTask);
    futureTask.get();

CompletableFuture的加入丰富了future的功能。

可以将线程原子化,然后进行排列组合或者流式处理,因此可操作性更强。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容