『互联网架构』软件架构-io与nio线程模型reactor模型(下)(54)

栏目: 后端 · 发布时间: 6年前

内容简介:nio就是解决了传统bio的多线程的问题,而且整个nio代码里面没有一句多线程的代码的,nio的服务端就是一个线程。源码:https://github.com/limingios/netFuture/tree/master/源码/『互联网架构』软件架构-io与nio线程模型reactor模型(上)(53)/nio

nio就是解决了传统bio的多线程的问题,而且整个nio代码里面没有一句多线程的代码的,nio的服务端就是一个线程。源码:https://github.com/limingios/netFuture/tree/master/源码/『互联网架构』软件架构-io与nio线程模型reactor模型(上)(53)/nio

『互联网架构』软件架构-io与nio线程模型reactor模型(下)(54)

(一)nio和bio的对比

  • bio的方式

『互联网架构』软件架构-io与nio线程模型reactor模型(下)(54)

  • nio的方式

    > 增加了selectort的能力,底层就是一个多路复用模型。

    > 一个客人服务后,另一个客人上来服务员就立刻为另一个客户服务。

『互联网架构』软件架构-io与nio线程模型reactor模型(下)(54)

(二)nio模型结构

底层是Reactor模型

『互联网架构』软件架构-io与nio线程模型reactor模型(下)(54)

客户端发送请求之后Acceptor先进行接收。解析客户端到底是个说什么事件,客户端关注了什么事件服务器端是可以看到的,如果是读事件转发给 “Handler读”,如果是写事件转发给 ” Handler 写”。任何请求都接触通过分发器Dispatch确定对应事件的Handler。

  • 需要多个服务员,需要selector通知服务员。

Reactor多线程模型就是将Handler中的IO操作和非IO操作分开,操作IO的线程称为IO线程,非IO操作的线程称为工作线程!这样的话,客户端的请求会直接被丢到线程池中,客户端发送请求就不会堵塞。

『互联网架构』软件架构-io与nio线程模型reactor模型(下)(54)

当用户进一步增加的时候,Reactor会出现瓶颈!因为Reactor既要处理IO操作请求,又要响应连接请求!为了分担Reactor的负担,所以引入了主从Reactor模型!

『互联网架构』软件架构-io与nio线程模型reactor模型(下)(54)

PS:下节一起说说netty的源码部分。Netty是一个高性能NIO框架,其是对Reactor模型的一个实现!

>>原创文章,欢迎转载。转载请注明:转载自,谢谢!>>原文链接地址:上一篇:

已是最新文章


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数论概论

数论概论

希尔弗曼 / 孙智伟 / 机械工业出版社 / 2008-5 / 42.00元

《数论概论(原书第3版)》讲述了有关数论大量有趣的知识,以及数论的一般方法和应用,循序渐进地启发读者用数学方法思考问题,此外还介绍了目前数论研究的某些前沿课题。《数论概论(原书第3版)》采用轻松的写作风格,引领读者进入美妙的数论世界,不断激发读者的好奇心,并通过一些精心设计的练习来培养读者的探索精神与创新能力。一起来看看 《数论概论》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具