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的功能。
可以将线程原子化,然后进行排列组合或者流式处理,因此可操作性更强。