Reactor反应堆模型

单Reactor 单线程/进程

Reactor设计模式本质是基于事件驱动的。将对IO的处理转换为对事件的处理

 IO操作通过非阻塞IO实现,IO就绪通过IO多路复用来完成

这里的select、accept、read、send是系统调用函数,dispatch和业务处理是需要完成的操作,其中dispatch是分发时间操作

接下来介绍【但Reactor单进程】这个方案

  • Reactor对象通过epoll监听事件,收到事件后通过dispatch进行分发,具体分发给Acceptor对象进行处理还是Handler对象,要看具体收到的事件类型。
  • 如果是建立连接的事件,则交由Acceptor对象进行处理,Acceptor对象 会通过accept方法获取连接,并创建一个Handler对象来处理后续响应事件
  • 如果不是建立连接事件,则交由当前连接对应的Handler对象进行响应
  • Handler对象通过read->业务处理->send的流程来完成完整的业务流程

Reactor模型运行机制

单Reactor 多线程/进程

多Reactor 多线程/进程

muduo采用的就是此模型,one loop per thread

在大体模型了解的前提下,接下来,我会就muduo库里的核心源码进行剖析,我已经大体学过一遍了,为了加深印象,和查漏补缺吧,我接下来会更新mduo的三大核心类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值