ChannelFuture的做用是用来保存Channel异步操做的结果。编程
咱们知道,在Netty中全部的I/O操做都是异步的。这意味着任何的I/O调用都将当即返回,而不保证这些被请求的I/O操做在调用结束的时候已经完成。取而代之地,你会获得一个返回的ChannelFuture实例,这个实例将给你一些关于I/O操做结果或者状态的信息。异步
对于一个ChannelFuture可能已经完成,也可能未完成。当一个I/O操做开始的时候,一个新的future对象就会被建立。在开始的时候,新的future是未完成的状态--它既非成功、失败,也非被取消,由于I/O操做尚未结束。若是I/O操做以成功、失败或者被取消中的任何一种状态结束了,那么这个future将会被标记为已完成,并包含更多详细的信息(例如:失败的缘由)。请注意,即便是失败和被取消的状态,也是属于已完成的状态。ide