手把手帶你調(diào)試閱讀Netty啟動(dòng)服務(wù)流程源碼
? 點(diǎn)擊上方“JavaEdge”,關(guān)注公眾號(hào)
我們自己的線程,如果寫在main 方法,那就是
main 線程
在創(chuàng)建 NioEventLoopGroup(創(chuàng)建一組NioEventLoop) 的過程中就創(chuàng)建了 selector

這里因?yàn)槲覀儺?dāng)前線程其實(shí)是 main 線程,所以為 false
創(chuàng)建 ServerSocketChannel
初始化 server socket channel
給 server socket channel 從 boss group 選擇一個(gè) NioEventLoop
boss thread
將 serverSocketChannel 注冊到選擇的 NioEventLoop 的 selector
綁定地址啟動(dòng)
注冊接受連接事件(OP_ACCEPT) 到selector
第一次注冊并非監(jiān)聽OP_ACCEPT,而是0
最終監(jiān)聽的OP_ ACCEPT通過bind完成后的fireChannelActive()觸發(fā)
NioEventLoop 是通過 Register 操作的執(zhí)行來完成啟動(dòng)。
往期推薦

目前交流群已有?800+人,旨在促進(jìn)技術(shù)交流,可關(guān)注公眾號(hào)添加筆者微信邀請進(jìn)群
喜歡文章,點(diǎn)個(gè)“在看、點(diǎn)贊、分享”素質(zhì)三連支持一下~
評(píng)論
圖片
表情
