【muduo源码学习】one-loop-per-thread核心原理

在 TCP 网络编程中,这里我们特指在单机的环境下,主要关注两件事。第一,如何正确的处理TCP的连接和断开,以及正确处理数据的收发;在错综复杂的网络环境中,这并非易事,涉及很多细节。第二,如何榨干机器的性能,即如何让单台机器在已有的硬件条件下处理尽可能多的连接请求;这需要设计一种高效的网络模型,这是本文讨论的主题,即在 muduo 网络库源码的学习基础上,总结和讨论。

下面进入本文的主题。

在TCP网络编程中,我们关注的核心是,在一个小的时间片段中,如何能够处理更多的并发连接。这主要可以从三个方面展开,而从一个服务端程序的性能指标来看,这三个方面分别为:响应时间、吞吐量和并发连接数。

  • 响应时间。响应时间是指请求发送到收到响应的时间。从程序本身来看,当收到客户端发来的请求时,TCP服务端需要能够立马处理,并将处理结果立马发送回客户端。更具体地,在面对短时间内有大量的请求到来时,TCP服务端要做尽可能地做到不阻塞在某个或某些请求处理上。这表现为,在错综复杂的网络环境中,数据的收发是不确定性,TCP服务端不能阻塞在socket上的读写上,这就要求socket是非阻塞的(nonblocking IO)。
  • 吞吐量。吞吐量是指单位时间内处理的请求数量。我们希望每个单机的TCP服务程序在单位时间内能够处理尽可能多的请求,这对于单核的CPU很容易就达到瓶颈,而对于多核的CPU,我们希望尽可能把每个核都跑满,使其处理充分多的请求,这就要求TCP服务程序具有很好的多线程网络模型,而下文中介绍的 one loop per thread 网络模型就可以很好的和多线程结合。
  • 并发连接数。并发连接数是指服
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值