『互联网架构』软件架构-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模型的一个实现!

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

已是最新文章


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

查看所有标签

猜你喜欢:

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

深入浅出Ajax

深入浅出Ajax

(美)Brett McLaughlin / 东南大学出版社 / 2006-5 / 98.00元

本书将教会您如何在很短的时间内掌握使用JavaScript代码来向服务器提交异步请求?同时,您可以学习如何使用诸如动态HTML、XML、JSON、DOM等技术来解决开发过程中遇到的许多问题。让你从那些繁琐而笨拙的网站开发技术中彻底解放出来!本书将是一本指导您进行异步开发的经典参考书籍。   作为一名网站设计人员,您也许时常因为遇到以下情况而烦恼:用户只是移动了鼠标就要从服务器重载数据......一起来看看 《深入浅出Ajax》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

html转js在线工具
html转js在线工具

html转js在线工具