get()方法在Futrue计算完成之前会一直处在阻塞状态下,

isDeone()方法容易耗费CPU资源,

对于真正的异步处理我们希望是可以通过传入回调函数,在Futrue结束时自动调用该回调函数,这样,我们就不用等待结果。

 

阻塞的方式和异步编程的设计理念相违背,而轮询的方式会耗费无谓的CPU资源。因此,

JDK8设计出CompletableFutrue。

 

CompletableFutrue提供了一种观察者模式类似的机制,可以让任务执行完成后通知监听的一方。

 

  • CompletionStage

CompletionStage代表异步计算过程中的某一个阶段,一个阶段完成以后可能会触发另外一个阶段,有些类似Linux系统的管道分隔符传参数

    •   一个阶段的计算执行可以是一个Fuction,Consumer或者Runable。
    •       一个阶段的执行可能是被单个阶段的完成触发,也可能是由多个阶段一起触发

 

posted on 2024-06-05 21:49  不会java的菜鸟程序员  阅读(12)  评论(0)    收藏  举报