标签:line api read event context socket 开始 oca local
一. Channel接口
1. 基本的IO操作:bind(),connect(),read(),write();
2. Channel接口提供的API降低了直接使用Socket类的复杂性;
3. 拥有许多预定义的,专门化实现的类:EmbeddedChannel,LocalServiceChannel,NioDatagramChannel,NioSctpChannel,NioSocketChannel等;
二. EventLoop接口
1. 定义了Netty的核心抽象,用于处理连接的生命周期中所发生的事件;
2. 一个EventLoopGroup包含一个或多个EventLoop;
3. 一个EventLoop在它的声明周期只和一个Thread绑定;
4. 所有由EventLoop处理的IO事件都将在它专有的Thread上被处理;
5. 一个Channel在它的声明周期内只注册一个EventLoop;
6. 一个EventLoop可能会被分配给一个或多个Channel;
7. 一个给定Channel的IO操作都是由相同的Thread执行的,消除了对同步的需要;
三. ChannelFuture接口
1. Netty中所有的IO操作都是异步的;
2. ChannelFuture接口的addListener()方法注册一个ChannelFutureListener,以便在操作完成时得到通知;
3. 所有属于同一个Channel的操作都被保证以被调用的顺序执行;
四. ChannelHandler接口
1. 充当了所有处理入站和出站数据的应用程序逻辑的容器;
2. ChannelHandler的方法是由网络事件触发的;
五. ChannelPipeline接口
1. ChannelPipeline为ChannelHandler链提供了容器,并定义了用于在该链上传播入站和出站事件流的API;
2. 如果一个事件被读取,会从ChannelPipeline的头部开始流动,传递给第一个ChannelHandler,之后按照被添加的顺序传递给下一个ChannelHandler,直到ChannelPipeline尾部;
3. 当ChannelHandler被添加到ChannelPipeline时会分配一个ChannelHandlerContext,其代表了ChannelHandler和ChannelPipeline的绑定,所以Netty能确保数据只在具有相同定向类型的两个ChannelHandler之间传递;
标签:line api read event context socket 开始 oca local
原文地址:https://www.cnblogs.com/bbbbs/p/12527128.html