线程模型Reactor/Proactor的区别

反应器(Reactor)是一种为处理服务请求并发提交到一个或者多个服务处理程序的事件设计模式,当接收请求后,服务处理程序使用解多路分配策略,然后同步地派发这些请求至相关的请求处理程序。 处理特点: 1.事件驱动(event handling)

2.可以处理一个或多个输入源(one or more inputs)

3.通过Service Handler同步的将输入事件(Event)采用多路复用分发给相应的Request Handler(多个)处理

reactor简要模型png

Reactor Pattern OMT类图.png

Reactor的三种模型

首先Reactor 模式中可定义三种角色:

  1. Reactor负责监听和分配事件,将I/O事件分派给对应的Handler

  2. Acceptor处理客户端新连接,并分派请求到处理器链中

  3. Handlers执行非阻塞读/写 任务,可用资源池来管理

单Reactor单线程模型

Reactor 对象通过 select 监控连接事件,收到事件后通过dispatch进行转发。如果是连接建立的事件,则由Acceptor接受连接,并创建handler处理后续事件。handler会完成read->业务处理-->send的完整业务流程。

只是在代码上进行了组件的区分,但是整体操作还是单线程,不能充分利用硬件资源。handler业务处理部分没有异步。Redis使用单Reactor单进程的模型。 单Reactor多线程模型

相对于第一种单线程的模式来说,在处理业务逻辑,也就是获取到IO的读写事件之后,交由线程池来处理,handler收到响应后通过sen

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值