
Netty 中的各种类, 各种抽象, 实际上很多是包装了 Java NIO 的类SelectableChannel , Selector, SelectionKey
所以学习Netty, 一定要先学TCP连接, 再学Java的抽象, 再学Netty是如何对应Java的抽象
EventLoop是什么
- 就是一个包装了线程的类, 任务就是不断的处理新的事件
ChannelEvent EventLoop维护着一个注册了ServerSocketChannel的Selector实例
EventLoopGroup是什么
Netty经典使用模式
- 使用两个
EventLoopGroup, 一个叫bossGroup, 一个叫workerGroup bossGroup一般指定一个线程, 专门处理TCP连接的OP_ACCEPT事件, 当建立连接之后, 会生成一个SocketChannel对象, 交给workerGroup处理workerGroup一般指定多个线程, 专门处理TCP连接的 读写事件, 使用bossGroup创建的SocketChannel来进行读写- 当发生TCP事件之后, 会将事件放入
EventLoop的taskQueue中
