美文网首页程序员
Netty reactor线程步骤和启动服务流程

Netty reactor线程步骤和启动服务流程

作者: 勿念及时雨 | 来源:发表于2019-12-18 17:12 被阅读0次

    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事件触发的时候才真正进行绑定的。

    相关文章

      网友评论

        本文标题:Netty reactor线程步骤和启动服务流程

        本文链接:https://www.haomeiwen.com/subject/wmpunctx.html