竹笋

首页 » 问答 » 灌水 » 京东一面说说CompletableFu
TUhjnbcbe - 2022/6/8 14:04:00
1.概述

CompletableFuture是jdk1.8引入的实现类。扩展了Future和CompletionStage,是一个可以在任务完成阶段触发一些操作Future。

简单的来讲就是可以实现异步回调。

2.为什么引入CompletableFuture

对于jdk1.5的Future,虽然提供了异步处理任务的能力,但是获取结果的方式很不优雅,还是需要通过阻塞(或者轮训)的方式。如何避免阻塞呢?其实就是注册回调。

业界结合观察者模式实现异步回调。也就是当任务执行完成后去通知观察者。比如Netty的ChannelFuture,可以通过注册监听实现异步结果的处理。

Netty的ChannelFuture

publicPromiseVaddListener(GenericFutureListener?extendsFuture?superVlistener){checkNotNull(listener,"listener");synchronized(this){addListener0(listener);}if(isDone()){notifyListeners();}returnthis;}privatebooleansetValue0(ObjectobjResult){if(RESULT_UPDATER.

1
查看完整版本: 京东一面说说CompletableFu