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

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

内容简介: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模型的一个实现!

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

已是最新文章


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

查看所有标签

猜你喜欢:

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

Usability for the Web

Usability for the Web

Tom Brinck、Darren Gergle、Scott D. Wood / Morgan Kaufmann / 2001-10-15 / USD 65.95

Every stage in the design of a new web site is an opportunity to meet or miss deadlines and budgetary goals. Every stage is an opportunity to boost or undercut the site's usability. Thi......一起来看看 《Usability for the Web》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码