服务器网络模型(4)---网络框架模型

本文探讨了四种服务器网络模型:单线程模型、单线程模型的多线程调度、单线程模型组成线程组以及半同步/半异步模型。每种模型都有其优势和适用场景,例如单线程模型适用于无状态逻辑层,而半同步/半异步模型则具备良好的伸缩性和应对请求波动的能力。在多线程调度中,通过同步机制确保对同一fd的请求串行化,防止数据不一致。最后,文章指出半同步/半异步模型是最常用的框架,虽性能可能不如其他模型,但其伸缩性极佳。
摘要由CSDN通过智能技术生成

在I/O模型的讨论中,我们没有引入线程的概念,也没有区分其对accept和read的不同行为,我们在这里将他们引入I/O模型中,并与线程池模型组合,将会看到很多有趣的网络框架模型。同样,在这里我们不讨论I/O模型是Reactor还是Proactor,除非有特殊需要。

1.单线程模型

      

       如上图所示,所有的处理过程都在一个线程中,这种模型下能做到零数据拷贝,零切换(不存在切换)和零加锁(不存在加锁),劣势也是明显的:无法利用CPU全部能力,处理请求过程中出现I/O等待时将会卡死所有请求。

       单线程模型一般可以结合多进程来做服务器,由进程组提供服务。单线程模型在处理请求过程中无I/O阻塞的情况下,仍然是很高效的模型,同时还能有效的降低编程难度,比如无状态逻辑层的编写,单线程多进程就是一个不错的选择。另外在数据存储层,会强行要求操作串行化,否则容易引起一致性问题,这个时候单线程也是一个不错的选择。

2.单线程模型的多线程调度

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值