
muduo源码分析
文章平均质量分 74
扎扎实实写代码
勤勤恳恳打基础,扎扎实实写代码!
展开
-
muduo-源码分析(前言0)
前言0 个人高性能、高并发linux服务器端编程(网络编程)比较感兴趣,自己写过一些简单的tcp通信程序,用进程池实现简单CGI服务器,用线程池实现简单web服务器。熟悉c++编程语言,但是没有用c++参与过一个项目,所以想寻找一个开源项目,用c++自己实现一个相对完整的网络库,所以选择了muduo开源网络库作为学习的第一个系统。因为他的代码量比较小,书中提到了如何借助现成库来发挥C++的原创 2017-04-11 15:41:15 · 471 阅读 · 0 评论 -
muduo-源码分析 1:基础概念准备
一 网络模型-Reactor模式 1.什么是reator模式 Wikipedia上说:“The reactor design pattern is an event handling pattern for handling service requests delivered concurrently by one or more inputs. The service handler原创 2017-04-11 16:04:44 · 785 阅读 · 0 评论 -
muduo源码分析2:整体框架
muduo简化类图: Channel 是selectable IO channel,负责注册与响应IO 事件,注意它不拥有file descriptor。它是Acceptor、Connector、EventLoop、TimerQueue、TcpConnection 的成员,生命期由后者控制。 Socket 是一个RAII handle,封装一个file descriptor,并在析构原创 2017-04-11 16:16:37 · 595 阅读 · 0 评论 -
linux-muduo线程通信eventfd
eventfd 在内核版本,2.6.22以后有效。查看内核版本可以用命令 uname -r 在看muduo源码时,项目中使用eventfd机制实现线程间的唤醒(通知)。觉得效率比较高,所以拿来学习下。其也可以实现父子进程间的通信。 首先使用: man eventfd name:eventfd–创建一个用于事件通知的描述符SYNOPSIS:#include<sys/eventfd.h> in原创 2017-04-17 20:47:30 · 1603 阅读 · 0 评论 -
muduo源码分析--线程池的实现
muduo线程池主要有3个类的实现:EventLoop,EventLoopThreadPool,EventLoopThread,和Thread. 1.Thread为对一个线程的封装:class Thread : boost::noncopyable{ public: typedef boost::function<void ()> ThreadFunc; //创建线程时,传递的函数原创 2017-04-25 10:39:43 · 841 阅读 · 0 评论