NioServerSocketChannel
类图
pipeline:DefaultChannelPipeline
创建NioServerSocketChannel的时候,会初始化pipeline属性,创建一个DefaultChannelPipeline(this)。
看源码:AbstractChannel.java
protected DefaultChannelPipeline newChannelPipeline() {
return new DefaultChannelPipeline(this);
}
看DefaultChannelPipeline的构造方法:
protected DefaultChannelPipeline(Channel channel) {
this.channel = ObjectUtil.checkNotNull(channel, "channel");
succeededFuture = new SucceededChannelFuture(channel, null);
voidPromise = new VoidChannelPromise(channel, true);
tail = new TailContext(this);
head = new HeadContext(this);
head.next = tail;
tail.prev = head;
}
可以看到DefaultChannelPipeline内部维护了一个双向链表。head是表头,表头是HeadContext。
tail是表尾,为TailContext。