Linux后端服务器网络编程之线程模型丨reactor模型详解

前言

  上一篇文章《后端服务器网络编程之 IO 模型》中讲到服务器端高性能网络编程的核心在于架构,而架构的核心在于进程/线程模型的选择。本文将主要介绍传统的和目前流行的进程/线程模型,在讲进程/线程模型之前需要先介绍一种设计模式: Reactor 模式,不明白的看这里《Reactor 模式详解》,文中有一句话对 Reactor 模式总结的很好,引用下。

对Reactor 模式还不了解的朋友可以看看这个视频讲解:详解网络编程相关的细节处理丨 reactor模型

Reactor 模式首先是事件驱动的,有一个或多个并发输入源,有一个Service Handler,有多个Request Handlers;这个Service Handler会同步的将输入的请求(Event)多路复用的分发给相应的Request Handler。如果用图表示的如下:

  不知道读者有没有发现 Reactor 模式跟 IO 模型中的 IO 多路复用模型非常相似 ,在学习网络编程过程中也被这两个概念迷惑了很久。其实在设计模式层面 IO 多路复用也是采用 Reactor 模式的。IO 多路复用模型可以看成是 Reactor 模式在 IO 模型上的应用,而今天我们要讲的是 Reactor 模式在进程/线程模型上的应用。

  在我的看来,进程/线程模型可以分为非 Reactor 模式和 Reactor 模式两种(当然还有 Proactor 模式,这种本文先不讲,因为使用的比较少,而且我也还没搞懂这种模式)。非 Reactor 模式和 Reactor 模式的两种进程/线程模型下具体又分很多种,后面会一一列举。非 Reactor 模式的进程/线程模型是传统的模型,现在已经很少见,放在这里主要是让读者做个了解同时与 Reactor 模式的进程/线程模式做个对比。

非 Reactor 模式的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值