CompletableFuture

一、基础

Future:Future接口定义了操作异步任务执行的方法,如获取任异步任务的执行结果、取消异步任务的执行、判断任务执行是否完毕等。

Callable:Callable接口定义了需要有返回结果的任务需要实现的方法。

 

二、Future的缺点。

阻塞。必须手动futureTask.get()查询执行结果,这样会造成阻塞,导致线程卡在get()方法处,等待返回结果,无法继续执行后续代码。

解决方法:

1、尽量使用带超时参数的get()方法。

2、isDone()轮询是否结束,再调用get()。

 

三、CompletableFuture

public class CompletableFuture<T> implements Future<T>, CompletionStage<T>

CompletionStage,代表异步计算过程中的某一个节点,一个阶段完成以后可以会触发另外一个阶段。

一个阶段的计算执行可以是一个Function、Consumer或者Runnable。

一个阶段的执行可能被单个阶段的完成触发,也可能时由多个阶段一起触发。

 

上一篇:线程池之实例2


下一篇:【数据结构】课程设计-学生信息管理系统(双向链表)