天天看點

手把手帶你調試閱讀Netty啟動服務流程源碼

我們自己的線程,如果寫在main 方法,那就是

main 線程

在建立 NioEventLoopGroup(建立一組NioEventLoop) 的過程中就建立了 selector

手把手帶你調試閱讀Netty啟動服務流程源碼
手把手帶你調試閱讀Netty啟動服務流程源碼

這裡因為我們目前線程其實是 main 線程,是以為 false

手把手帶你調試閱讀Netty啟動服務流程源碼

建立 ServerSocketChannel

手把手帶你調試閱讀Netty啟動服務流程源碼
  • 初始化 server socket channel
  • 給 server socket channel 從 boss group 選擇一個 NioEventLoop

boss thread

将 serverSocketChannel 注冊到選擇的 NioEventLoop 的 selector

手把手帶你調試閱讀Netty啟動服務流程源碼

綁定位址啟動

手把手帶你調試閱讀Netty啟動服務流程源碼

注冊接受連接配接事件(OP_ACCEPT) 到selector

手把手帶你調試閱讀Netty啟動服務流程源碼

第一次注冊并非監聽

OP_ACCEPT

,而是0

手把手帶你調試閱讀Netty啟動服務流程源碼

最終監聽的

OP_ ACCEPT

通過bind完成後的fireChannelActive()觸發

手把手帶你調試閱讀Netty啟動服務流程源碼

NioEventLoop 是通過 Register 操作的執行來完成啟動。

繼續閱讀