最近一直在看netty,看完之后就想做点笔记。可是实在是太忙了,挤了还要几个晚上终于挤出来了
上图是服务端的实例代码。大致的流程先梳理一遍。 首先会执行 ,workGroup用于处理io操作,内部,每当有新连接进来的时候boosGroup 都会把连接封装成一个channel 交给workGroup 去处理。
我们再看 NioEventLoopGroup 的构造方法,一直点进去,实际上调用的 MultithreadEventExecutorGroup
可以看到 这两行代码实际就是创建两个包含 NioEventLoop 对象的数组。NioEventLoop对象我们后面介绍。 ServerBootstrap 是一个辅助类,主要用于设置各种配置参数,
就是上面我们创建的两个线程组,
表示服务端启动的是nio相关的channel,channel在netty里面是一大核心概念,可以理解为一条channel就是一个连接或者一个服务端bind动做
上面的几行代码都是做相应配置。 真正的关键在于bind方法 我们一路点击进去。这个干了三件事 初始化,注册,绑定端口。 我们先看 initAndRegister 总共三步,创建channel,初始化,注册。 1.创建 反射调用,这里的clazz是在 2.初始化 初始化只做了两件事
3.注册 将该条
现在我们的 netty通过异步线程的方式完成端口绑定,这段代码比较难找,最终会来到
最终调到了jdk里面的bind方法,这行代码过后,正常情况下,就真正进行了端口的绑定。 来源:http://www./content-1-96501.html |
|