两种高效的事件处理模式

两种高效的事件处理模式:

•同步I/O模型通常用于实现Reactor模式
•异步I/O模型则用于实现Proactor模式
Reactor—反应堆
Reactor模式:
原理:这种模式的要求是主线程(I/O处理单元)监听文件描述符上是否有事件发生,有事件发生就立即将该事件通知工作线程。
主线程只负责监听文件描述符上是否有事件发生,不做其他的工作;工作线程负责其他工作,如接受连接,读写数据等。

Proactor模式:
原理:相比于Reactor模式,Proactor模式下主线程要比较辛苦,主线程要执行数据读写操作,Proactor模式将所有I/O操作都交给主线程和内核来处理 工作线程仅仅负责负责逻辑处理(处理客户请求,往事件表中注册写就绪事件。)

同步I/O模拟Proactor模式:
原理:从sockfd上读取数据以及往sockfd上写数据都在主线程中完成,工作线程只负责对主线程读取到的客户请求进行处理,并在处理完客户请求后往事件表中注册sockfd上的写就绪事件,以便可以将处理后的结果写入sockfd.
每一种模式的具体工作流程请参考《linux高性能服务器编程》

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值