(文末有白嫖惊喜哦!)
netty中的操作是异步操作,需要使用future来表示异步操作的结果。netty在jdk中的future的基础上进行了扩展。接下来采用自顶向下的方式对future和promise的源码进行分析:

(一)jdk中future和netty中future的比较
jdk中future:

jdk中future的特点:
1.无论结果是成功还是失败还是取消,返回的都是isdone();
2.而且我们在异步操作触发和结束的时候比较关心其他的一些操作,在jdk的future中无法进行补充。所以netty对future做了扩展
netty中future(以下为扩展内容):

netty中future的特点:
1.操作结果分为success,fail,canceled三种;
2.并且通过addlisteners()方法可以添加回调操作,即触发或者完成时需要进行的操作;
3.await()和sync(),可以以阻塞的方式等待异步完成;getnow()可以获得异步操作的结果,如果还未完成则返回Null;
综合以上的分析,给出一张表示future的状态图来加强对future的理解:

ps:future只有两种状态,unconpleted和conpleted.
netty中的操作是异步操作,需要使用future来表示异步操作的结果。netty在jdk中的future的基础上进行了扩展。接下来采用自顶向下的方式对future和promise的源码进行分析:

(一)jdk中future和netty中future的比较
jdk中future:

jdk中future的特点:
1.无论结果是成功还是失败还是取消,返回的都是isdone();
2.而且我们在异步操作触发和结束的时候比较关心其他的一些操作,在jdk的future中无法进行补充。所以netty对future做了扩展
netty中future(以下为扩展内容):

netty中future的特点:
1.操作结果分为success,fail,canceled三种;
2.并且通过addlisteners()方法可以添加回调操作,即触发或者完成时需要进行的操作;
3.await()和sync(),可以以阻塞的方式等待异步完成;getnow()可以获得异步操作的结果,如果还未完成则返回Null;
综合以上的分析,给出一张表示future的状态图来加强对future的理解:

ps:future只有两种状态,unconpleted和conpleted.