栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java NIO线程模型分析--单Reactor多线程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java NIO线程模型分析--单Reactor多线程

目录

1.线程模型分析:

2.单Reactor多线程工作原理:

 3.优缺点分析:

4.Reactor模式小结:


1.线程模型分析:

永远要记住, Reactor(监听和分发)是通过多路复用器(Selector,poll,epoll)进行工作的,并且处理的事件中,就是客户端连接(Selection.OP_ACCEPT)和读(Selection.OP_READ)这两种事件。Acceptor(应该就是ServerSocketChannel,或者说肯定主要用到了它)负责处理客户端连接事件,Handler其实就是把处理READ事件的操作封装一下。

主从Reactor中的主Reactor(主线程)只处理客户端连接事件,从Reactor(子线程们)只处理read事件。主线程处理完连接事件后,生成一个NIOSocketChannel(封装了SocketChannel),然后将其注册到从Reactor的selector中。

三种:

  1. 单Reactor单线程
  2. 单Reactor多线程
  3. 主从Reactor多线程(Netty)

2.单Reactor多线程工作原理:

跟单Reactor单线程相比,多加了一个线程池去处理具体的业务,而不是再由主线程自己负责全部事情,一定程度上提高了并发性能,但由于Reactor和Handler还是在同一个单线程中进行监听和分发,性能还是有限。

Note: 其中的Acceptor应该就是ServerSockerChannel

 3.优缺点分析:

 这里就不提供代码了,因为很好理解。

4.Reactor模式小结:

Netty又进一步进行了功能的增强,可以有多个MainReactor(叫做Boss Group),当然还是多个subReactor,下图是一个最简单的Netty线程模型的工作原理示意图:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/362319.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号