muduo
文章平均质量分 74
Shonm
用blog记录点点滴滴。。。成长的轨迹一步一个印
展开
-
muduo源码分析(一)
muduo是个基于现代C++高效的高并发网络库,他依赖boost库,由陈硕大神编写,更多详情介绍,请看点击打开链接muduo代码结构比较清晰易懂,各个细节处理的非常完美,是一个非常值得学习的开源库。基于他是个网络库,开篇我剖析他的网络相关部分的结果,各个类的继承,调用关系。网络服务器要处理的对象无外乎,监听者TcpServer,连接接收者Acceptor,连接者TcpConnection等...原创 2018-06-14 11:50:30 · 21143 阅读 · 2 评论 -
muduo一个简单echo服务器的分析
muduo一个简单echo服务器的分析前两篇写muduo网络框架线程处理,这两篇通过一个小的echo服务器来完整说明这个网络事件处理的流程。echo是muduo自带的例子,十分简单:int main(){ LOG_INFO << "pid = " << getpid(); muduo::net::EventLoop loop; muduo::net:...原创 2018-08-03 17:53:40 · 1337 阅读 · 0 评论 -
muduo 多线程的处理
一般网络编程中为什么会用到多线程呢,无非是充分利用服务器多核的特性,提高网络并发量,吞吐率等。一般情况下,我们可以轻松想到这样的模型:主线程中监听socket连接事件,当产生新的连接时生成新的线程来处理。这种方式比较直接,但是有些不好处理的地方,例如线程的数量,真的是一个连接开一个线程吗。其实可以用线程池来解决这个问题,那说到线程池,那又如何解决线程与连接对应的问题,毕竟一个连接肯定是始终要在一个...原创 2018-08-03 11:26:45 · 2076 阅读 · 1 评论 -
muduo多线程的启动
上篇说了多线程处理的概述,这篇说说具体实现。muduo的多线程是由线程池中启动的。线程池类EventLoopThreadPool在TcpServer类中创建一个新的实例。发现在muduo中,各种类的关系基本上引用和包含即组合关系,很少有派生关系的,没有继承关系就没有虚函数的应用了。可能陈硕觉得继承关系比较复杂,耦合度太高,破坏整体设计。但是我觉得muduo中那么多不同种类的智能指针,还有基...原创 2018-08-03 16:08:06 · 833 阅读 · 0 评论 -
自己写一个网络库的心得
总是在看网络相关的代码,还没有完整的实现过一个网络库。南宋大诗人陆游有云,纸上得来终觉浅,绝知此事要躬行。哈哈这也是我们高中的校训之一。这两周抽了点时间实现了一个小型的网络库,深度参考了muduo,只不过我是用C语言实现的,名字就叫muevent。muduo是用C++的,我为什么要用C语言呢,而且我曾经用C++的时间要远多于C。因为C语言更加接近底层实现,C++干了太多不为人知的事,毕竟...原创 2019-04-12 19:50:48 · 1920 阅读 · 0 评论