美文网首页
多线程开发

多线程开发

作者: _奔跑的蜗牛_ | 来源:发表于2017-02-13 16:43 被阅读29次

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的功能。

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

相关文章

网友评论

      本文标题:多线程开发

      本文链接:https://www.haomeiwen.com/subject/ruktwttx.html