• muduo源代码分析--我对muduo的理解

    时间:2023-02-07 10:31:35

    分为几个模块 EventLoop、TcpServer、Acceptor、TcpConnection、Channel等对于EventLoop来说:他仅仅关注里面的主驱动力,EventLoop中仅仅关注poll,这类系统调用使得其成为Reactor模式,EventLoop中有属于这个loop的全部Cha...

  • muduo库的简单使用-echo服务的编写

    时间:2022-12-11 13:14:26

    muduo库的简单使用muduo是一个基于事件驱动的非阻塞网络库,采用C++和Boost库编写。它的使用方法很简单,参考这篇文章:TCP网络编程本质论里面有这么几句:我认为,TCP 网络编程最本质的是处理三个半事件:连接的建立,包括服务端接受 (accept) 新连接和客户端成功发起 (connec...

  • g++/gcc 常见选项。(muduo 编译小程序举例)

    时间:2022-12-02 02:20:56

    -g 加入调试? -o 输出 -I 加入寻找头文件的路径。例如:#include <muduo/net/TimerId.h>/*如果/usr/include这些系统库路径没有muduo库的话,我们编译需要加上“-I muduo库路径” 编译器才能找到这些头文件。 */-l 链接库 (比如...

  • 从epoll构建muduo-11 单线程Reactor网络模型成型

    时间:2022-11-04 07:33:53

    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网络库源码学习————*队列和有界队列

    时间:2022-10-26 17:36:29

    muduo库里实现了两个队列模板类:*队列为BlockingQueue.h,有界队列为BoundedBlockingQueue.h,两个测试程序实现了生产者和消费者模型。(这里以*队列为例,有界队列和*的差不多)代码如下: BlockingQueue.h#include <muduo/b...

  • Linux多线程服务端编程:使用muduo C++网络库

    时间:2022-10-08 08:02:57

    内容推荐本书主要讲述采用现代C++在x86-64Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop perthread。这是在Linux下以native语言编写用户态高性能网络程序最成熟的模式,掌握之后可顺利地开发各类常见的服务...

  • 从epoll构建muduo-11 单线程Reactor网络模型成型

    时间:2022-09-08 20:53:20

    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 网络库作者

    时间:2022-08-11 16:44:00

    http://chenshuo.com/book/   Muduo网络库源码分析(一) EventLoop事件循环(Poller和Channel)http://blog.csdn.net/nk_test/article/details/51052539   链接: http://pan.baidu.

  • muduo学习笔记(二)Reactor关键结构

    时间:2022-07-13 19:54:18

    muduo学习笔记(二)Reactor关键结构目录muduo学习笔记(二)Reactor关键结构Reactor简述什么是ReactorReactor模型的优缺点poll简述poll使用样例muduo Reactor关键结构ChannelPollerEventLoopReactor时序图测试程序-单次...

  • Muduo源码库研究(笔记汇总)

    时间:2022-07-09 11:53:07

    声明: 本人学习Muduo源码, 有些代码会对其进行精简, 加上本人的一些理解, 所以与作者的代码可能有些不同. 如有理解错误的地方欢指出.Muduo基础库-时间戳类 http://www.cnblogs.com/chenchengxun/p/5999236.html

  • muduo源码分析:线程类Thread封装

    时间:2022-05-16 00:00:25

    线程id Linux中,每个进程有一个pid,类型pid_t,由getpid()取得。 Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即不同进程中的线程可能有相同的id)。Linux中的POSI...

  • muduo的日志库分析四之AsyncLogging类

    时间:2022-05-10 21:55:40

       用一个背景线程负责收集日志消息并写入日志文件,其它业务线程只管往这个“日志线程”发送日志消息,这称为"异步日志"。在多线程服务程序中,异步日志(也可叫“非阻塞日志”)是必需的。假如在网络IO线程或业务线程中直接写日志,写操作偶尔可能阻塞一会儿,业务中的响应请求可能会超时,或者耽误发送心跳包,在...

  • muduo 的windows下的编译

    时间:2022-04-10 03:05:48

    四处寻觅开源代码学习,适合的代码非常稀少,不适合的原因却千奇百怪。不是使用语言特性过于老旧(c++03) 就是使用的冷僻语法(template<T> enable_share_from_this<T> 居然还搞个继承)要么就是需要强大的系统背景知识(图形引擎,加密代码等) 或...

  • (10)muduo_base库源码分析:Timestamp.cc和Timestamp.h

    时间:2022-03-16 00:52:42

    文章目录​​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 的封装

    时间:2022-01-22 21:52:29

    #ifndef MUDUO_NET_ACCEPTOR_H#define MUDUO_NET_ACCEPTOR_H#include <boost/function.hpp>#include <boost/noncopyable.hpp>#include <muduo...

  • 高并发服务器架构笔记(3)——muduo_base 源码分析

    时间:2021-08-29 18:00:37

    MutexLock MutexLock Mutex: pthread_mutex_t holder: pid_t (当前拥有该锁的线程 tid) ~~~~~~~~~~~~~ << create >> MutexLock() << d...

  • muduo源码分析---EventLoop类

    时间:2021-08-11 00:17:48

    现在暂时记住TcpConnection是TcpServer中Acceptor关注的监听套接字上accept新连接后被初始化的一个对象,接下来分析下EventLoop         这个东西才是真正驱动库的核心,是别的类(EpollPoller Acceptor )帮助他完成了库的功能,看看内部是怎...

  • Netty,Kafka,Muduo关于时间轮的一些思考 之netty时间轮

    时间:2021-05-26 15:04:31

    无论是网络库,还是各种网络服务器,使用定时器永远是不可避免的,有那么多链接需要管理,不可能为每一个链接都开一个线程,也不可能每一次操作都遍历每一个链接去检查它们是否过期,高效的定时器框架是必须的. 于是而定时器的经典模型时间轮应运而生. 时间轮的模型其实很简单,万变不离其宗.网上有很多资料,这里我不...

  • muduo的日志库分析二之Logger类

    时间:2021-05-22 19:49:43

    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封装

    时间:2021-02-06 00:03:38

    线程id Linux中,每个进程有一个pid,类型pid_t,由getpid()取得。 Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即不同进程中的线程可能有相同的id)。Linux中的POSI...