DefaultChannelPromise
在分析Unsafe或者ChannelPipeline的方法时经常出现Promise类,它用来保存channel的状态值,默认使用的是DefaultChannelPromise,接下来分析这个类。
类结构图
属性值
DefaultChannelPromise中有一个属性result
,它用来保存channel的状态值,通过AtomicReferenceFieldUpdater类型的RESULT_UPDATER来进行原子更新result值,它的值一般有null、SUCCESS、UNCANCELLABLE。
当result值变化时会触发监听器。
接下来我们以最常用的方法trySuccess
来分析DefaultChannelPromise的使用方法及用途。
trySuccess
trySuccess
的源码过程如下: