reactor线程步骤
reactor线程执行主要分为三个步骤,并且这三个步骤是不断的循环执行的。
1.轮询注册到reactor线程对应的selector上的所有channel的IO事件。
select(wakenUp.getAndSet(false));
if (wakenUp.get()) {
selector.wakeup();
}
2.处理产生网络IO事件的channel。
processSelectedKeys();
3.处理任务队列。
runAllTasks(...);
Netty启动服务流程
1.设置启动类参数,主要是设置channel。
2.创建server对应的channel,创建ChannelConfig、ChannelId、ChannelPipeline、ChannelHandler、Unsafe等组件。
3.初始化server对应的channel,设置attr,option以及子channel的attr,option,给server的channel添加新channel接入器,并触发addHandler,register等事件。
4.调用JDK底层做端口绑定,并触发active事件,服务端口实际上是在active事件触发的时候才真正进行绑定的。
网友评论