Netty框架之网络线程模型

Netty的网络线程模型由boss线程和worker线程构成,其中boss线程监听端口,接收新连接并分配给worker线程池处理。worker线程数量通常是CPU核心数的两倍,它们使用I/O多路选择器Selector处理网络请求,维护多个处理队列并进行同步控制。线程间的同步依赖于两个锁:一个用于启动状态控制,另一个用于Selector和SelectionKey的操作。
摘要由CSDN通过智能技术生成

Netty网络线程模型主要有两类线程组成:boss线程、worker线程。启动一个server实例只会产生一个boss线程,boss线程主要负责监听端口,当有新的连接请求时就会产生一个task交给worker线程池处理,worker线程池中线程的个数默认是cpu个数的2倍。



Netty网络I/O操作采用了目前流行的I/O多路选择器Selector方式(具体的实现是select/poll,还是epoll/kqueue,是由java虚拟机根据具体操作系统的实现来决定的)。

       Worker线程池中每个线程都维护几个处理队列(如注册队列,写任务队列等),每个队列中实际上都注册着一些interestOPS(感兴趣的操作集),worker线程不断的循环地做select操作,boss线程不断地将新的连接请求注册到一个work线程的注册队列中,每次都是轮询出worker线程池中的一个线程:

NioWorker nextWorker() {
        return workers[Math.abs(workerIndex.getAndIncrement() % workers.leng
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值