欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

Netty服務端是如何一步一步啟動的

錢斌斌2年前14瀏覽0評論

Netty服務端是如何一步一步啟動的?

先看代碼

上面是netty服務端的一個簡單的例子,一般可以分為五步:1、創建線程池;2、創建啟動類;3、配置參數;4、開啟監聽;5、阻塞直到serverSocket關閉。

下面我們一步步來看netty都做了些什么工作:

1、創建線程池,從繼承關系來看,NioEventLoopGroup最終是實現了Executor接口的,NioEventLoopGroup可以理解為線程池。創建了兩個線程池bossGroup是用來處理TCP連接請求的,workGroup是來處理IO事件的。

2、創建啟動類

第2步沒什么說的,就是創建一個啟動類。啟動類就是整個執行的上下文。

3、配置參數

group(bossGruop, workGroup)這里面的線程池上面已經說了

channel(NioServerSocketChannel.class)方法會返回一個工廠類,用于后面創建 NioServerSocketChannel,NioServerSocketChannel其實就是封裝了Java中的ServerSocketChannel

childHandler中的多個ChannelHandler會組成一個pipeline,用于處理輸入和輸出。ChannelHandler的繼承圖。ChannelHandler下面有兩個接口,一個輸入ChannelInboundHandler,一個輸出ChannelOutboundHandler;一個抽象類ChannelHandlerAdapter

4、開啟監聽

serverBootstrap.bind(8080).sync()的操作, sync會阻塞直到bind完成。

主要操作就在bind里面了,bind里面初始化channel,并發channel注冊到selector上,這也是NIO的操作步驟,還會把之前配置的handler注冊到pipeline上。netty的pipeline可以多了解下,輸入輸出都會走pipeline進行處理

5、阻塞直到serverSocket關閉

最后一步f.channel().closeFuture().sync()會一直阻塞,直到serverSocket關閉。

更詳細的解釋可以看我分享的文章。

希望對你有所幫助,有幫助記得點贊哦!可以關注下,后面持續分享架構和Java的文章,謝謝!

java 超時監聽,Netty服務端是如何一步一步啟動的