muduo源代码分析--我对muduo的理解
分为几个模块 EventLoop、TcpServer、Acceptor、TcpConnection、Channel等对于EventLoop来说:他仅仅关注里面的主驱动力,EventLoop中仅仅关注poll,这类系统调用使得其成为Reactor模式,EventLoop中有属于这个loop的全部Cha...
muduo库的简单使用-echo服务的编写
muduo库的简单使用muduo是一个基于事件驱动的非阻塞网络库,采用C++和Boost库编写。它的使用方法很简单,参考这篇文章:TCP网络编程本质论里面有这么几句:我认为,TCP 网络编程最本质的是处理三个半事件:连接的建立,包括服务端接受 (accept) 新连接和客户端成功发起 (connec...
g++/gcc 常见选项。(muduo 编译小程序举例)
-g 加入调试? -o 输出 -I 加入寻找头文件的路径。例如:#include <muduo/net/TimerId.h>/*如果/usr/include这些系统库路径没有muduo库的话,我们编译需要加上“-I muduo库路径” 编译器才能找到这些头文件。 */-l 链接库 (比如...
从epoll构建muduo-11 单线程Reactor网络模型成型
mini-muduo版本传送门 version 0.00 从epoll构建muduo-1 mini-muduo介绍 version 0.01 从epoll构建muduo-2 最简单的epoll version 0.02 从epoll构建muduo-3 加入第一个类,顺便介绍reactor versi...
muduo网络库源码学习————*队列和有界队列
muduo库里实现了两个队列模板类:*队列为BlockingQueue.h,有界队列为BoundedBlockingQueue.h,两个测试程序实现了生产者和消费者模型。(这里以*队列为例,有界队列和*的差不多)代码如下: BlockingQueue.h#include <muduo/b...
Linux多线程服务端编程:使用muduo C++网络库
内容推荐本书主要讲述采用现代C++在x86-64Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop perthread。这是在Linux下以native语言编写用户态高性能网络程序最成熟的模式,掌握之后可顺利地开发各类常见的服务...
从epoll构建muduo-11 单线程Reactor网络模型成型
mini-muduo版本传送门 version 0.00 从epoll构建muduo-1 mini-muduo介绍 version 0.01 从epoll构建muduo-2 最简单的epoll version 0.02 从epoll构建muduo-3 加入第一个类,顺便介绍reactor ve...
陈硕 - Linux 多线程服务端编程 - muduo 网络库作者
http://chenshuo.com/book/ Muduo网络库源码分析(一) EventLoop事件循环(Poller和Channel)http://blog.csdn.net/nk_test/article/details/51052539 链接: http://pan.baidu.
muduo学习笔记(二)Reactor关键结构
muduo学习笔记(二)Reactor关键结构目录muduo学习笔记(二)Reactor关键结构Reactor简述什么是ReactorReactor模型的优缺点poll简述poll使用样例muduo Reactor关键结构ChannelPollerEventLoopReactor时序图测试程序-单次...
Muduo源码库研究(笔记汇总)
声明: 本人学习Muduo源码, 有些代码会对其进行精简, 加上本人的一些理解, 所以与作者的代码可能有些不同. 如有理解错误的地方欢指出.Muduo基础库-时间戳类 http://www.cnblogs.com/chenchengxun/p/5999236.html
muduo源码分析:线程类Thread封装
线程id Linux中,每个进程有一个pid,类型pid_t,由getpid()取得。 Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即不同进程中的线程可能有相同的id)。Linux中的POSI...
muduo的日志库分析四之AsyncLogging类
用一个背景线程负责收集日志消息并写入日志文件,其它业务线程只管往这个“日志线程”发送日志消息,这称为"异步日志"。在多线程服务程序中,异步日志(也可叫“非阻塞日志”)是必需的。假如在网络IO线程或业务线程中直接写日志,写操作偶尔可能阻塞一会儿,业务中的响应请求可能会超时,或者耽误发送心跳包,在...
muduo 的windows下的编译
四处寻觅开源代码学习,适合的代码非常稀少,不适合的原因却千奇百怪。不是使用语言特性过于老旧(c++03) 就是使用的冷僻语法(template<T> enable_share_from_this<T> 居然还搞个继承)要么就是需要强大的系统背景知识(图形引擎,加密代码等) 或...
(10)muduo_base库源码分析:Timestamp.cc和Timestamp.h
文章目录1.Timestamp.h的研究2.Timestamp.cc的研究2.相关测试代码1.Timestamp.h的研究Timestamp类图如下,参考下即可位置:muduo\base\Timestamp.h// Use of this source code is gov...
muduo 27 Acceptor 的封装
#ifndef MUDUO_NET_ACCEPTOR_H#define MUDUO_NET_ACCEPTOR_H#include <boost/function.hpp>#include <boost/noncopyable.hpp>#include <muduo...
高并发服务器架构笔记(3)——muduo_base 源码分析
MutexLock MutexLock Mutex: pthread_mutex_t holder: pid_t (当前拥有该锁的线程 tid) ~~~~~~~~~~~~~ << create >> MutexLock() << d...
muduo源码分析---EventLoop类
现在暂时记住TcpConnection是TcpServer中Acceptor关注的监听套接字上accept新连接后被初始化的一个对象,接下来分析下EventLoop 这个东西才是真正驱动库的核心,是别的类(EpollPoller Acceptor )帮助他完成了库的功能,看看内部是怎...
Netty,Kafka,Muduo关于时间轮的一些思考 之netty时间轮
无论是网络库,还是各种网络服务器,使用定时器永远是不可避免的,有那么多链接需要管理,不可能为每一个链接都开一个线程,也不可能每一次操作都遍历每一个链接去检查它们是否过期,高效的定时器框架是必须的. 于是而定时器的经典模型时间轮应运而生. 时间轮的模型其实很简单,万变不离其宗.网上有很多资料,这里我不...
muduo的日志库分析二之Logger类
github地址: https://github.com/chenshuo/muduo/blob/master/muduo/base/Logging.h https://github.com/chenshuo/muduo/blob/master/muduo/base/Logging.cc Logge...
muduo源码分析:线程类Thread封装
线程id Linux中,每个进程有一个pid,类型pid_t,由getpid()取得。 Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即不同进程中的线程可能有相同的id)。Linux中的POSI...