netty sync方法_netty是如何封装NIO的

本文详细介绍了如何使用Netty实现NIO,包括创建线程池、启动类、配置参数、开启监听以及阻塞等待服务关闭的步骤。Netty的NioEventLoopGroup作为线程池,通过NioServerSocketChannel封装Java的ServerSocketChannel,利用ChannelHandler处理输入输出,最后在ServerBootstrap.bind()中进行同步阻塞,直到服务器关闭。
摘要由CSDN通过智能技术生成

上次文章分享了Java中的NIO,一般我们都不会使用原生的NIO,这里介绍下怎么使用Netty来实现NIO的,我们一步步来看服务端的代码,明白服务端代码再去看客户端也就简单了。

netty例子

cd4f70fc207d921d464782507f83878d.png

上面是netty服务端的一个简单的例子,一般可以分为五步:1、创建线程池;2、创建启动类;3、配置参数;4、开启监听;5、阻塞直到serverSocket关闭。下面我们一步步来看netty都做了些什么工作。

1、创建线程池

4258c585d7d97c9fd3f348dc30a4f831.png

从继承关系来看,NioEventLoopGroup最终是实现了Executor接口的,NioEventLoopGroup可以理解为线程池。

77b47c525a13e2e7fda4cf90d7fbe411.png

我们看下参数最多的构造方法。

nThreads:线程池中的线程数,默认值为 CPU 核心数 *2

e1b3307f5447b57f8093b607f690824c.png

executor:线程池,默认是ThreadPerTaskExecutor

50dcc036535692e77d5fa40d0691e7a4.png

chooserFactory:线程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值