java reactor设计模式_reactor设计模式

reactor介绍

reactor的工作模式就像它的名字一样,是一种反射模式,当事件发生时,根据发生的事件调用注册的处理器。

Reactor的优点和应用

Reactor最常用于非阻塞的socket

传统的设计是一种同步的停等协议,读写操作执行后要等待当前fd的下一次可读/写事件,这期间什么都不能干,程序就阻塞在事件上。

有了Reactor以后的设计,告诉Reactor你所关注的事件和事件发生后的处理器,Reactor充当一个中间人的角色,非阻塞的检测事件是否发生,如果发生就调用注册的处理器。与传统设计不同的是Reactor可以同时非阻塞的检测多个I/O上的事件并处理,大大提高了程序运行效率。

以ev_io为例,说明reactor模式

初始化事件处理器

ev_io_init

注册事件处理器,把事件处理器添加到ev_loop的观察列表中

ev_io_start

移除事件处理器,把事件处理器从ev_loop的观察列表中移除

ev_io_stop

reactor主循环,I/O多路复用和事件分发器

ev_run

{

//检查关注fd列表fdchanges,新增加或者修改的fd都保存在这个列表中

//通过fd查找注册的事件处理器ANFD,检查事件处理器的关注事件

fd_reify

调用跨平台的多路复用api,封装过的,epoll的封装在ev_epoll.c

backend_poll

把事件加入待处理列表

ev_feed_event

//调用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值