# channel和ChannelPipeline的联系与区别

1. **每个channel有且仅有一个ChannelPipeline与之对应**
2. **一个channel 包含一个ChannelPipeline，而一个ChannelPipeline中维护了一个由ChannelHandlerContext组成的双向链表，并且每个ChannelHandlerContext又关联着ChannelHandler**
3. **入栈和出栈事件在一个双向链表中，入栈事件会从链表head往后传递到最后一个入栈的handler，出栈事件会从链表tail往前传递到最前一个出栈的handler，两种类型的handler互不干扰**

<div drawio-diagram="150"><img src="http://wiki.shopqorg.com/uploads/images/drawio/2024-04/drawing-1-1714385182.png" alt=""/></div>