
muduo学习笔记
文章平均质量分 68
叫我小黄吧
他日若遂凌云志,敢笑黄巢不丈夫
展开
-
muduo库网络部分
网络相关的文件简述TcpServer.* : tcp server,用于处理客户端连接,管理客户端连接Acceptor.* : 接受客户端连接EventThreadLoop.* : 线程池,每个线程中有一个eventloop做事件循环InetAddress.* : 包装struct sockaddr_in , 方便对struct sockaddr_in的使用socketsOps.* : 对网络相关系统api封装,简化使用socket.* : 封装socketfd,方便对sock原创 2022-02-02 15:10:35 · 598 阅读 · 0 评论 -
muduo事件处理
我个人觉得muduo库最重要的,最值得学的部分就是事件循环eventloop。我也会尽可能详细的讲解。eventloop采用reactor模式,相比boost的前摄器模式,代码相对更容易看懂,但大量回调的使用,会导致初学者比较难找到一个完整逻辑,从而增大对代码理解的难度。事件循环部分核心部分由Poller,Channel,Eventloop组成。EventThread和EventThreadPool,是基于EventLoop的扩展。Poller,channel都是针对io任务(定时任务,socket,普原创 2022-01-20 23:30:45 · 590 阅读 · 0 评论 -
【muduo/base】线程
#前言muduo库也封装了线程Thread类,线程池ThreadPool。以及线程辅助类ThreadData,在这一部分我们可以学到如何创建线程,如何回收线程,加深对进程和线程的理解,以及代码规范方面的提升。Thread类头文件代码(去除了和命名相关的成员变量和函数)class Thread : noncopyable{ public: typedef std::function<void ()> ThreadFunc; explicit Thread(ThreadFunc原创 2022-01-16 21:24:12 · 412 阅读 · 0 评论 -
【muduo/base】线程同步类
前言muduo库也对线程同步原语封装了一下,为下面三个类:(1) MutexLock (2)Condition (3) CountDownLatch我将简化类,或以伪代码的形式作为讲解mutex类简化后的代码class MutexLock : noncopyable{ public: MutexLock() { //pthread_mutex_init 系统调用 初始化一个锁 MCHECK(pthread_mutex_init(&mutex_, NULL));原创 2022-01-13 00:20:25 · 228 阅读 · 2 评论 -
【muduo/base】对象拷贝控制
nocopyable 类nocopyable功能:让该类的派生类对象无法拷贝class noncopyable{ public: noncopyable(const noncopyable&) = delete; void operator=(const noncopyable&) = delete; protected: noncopyable() = default; ~noncopyable() = default;};分析如何禁止对象的拷贝在c原创 2022-01-12 22:02:32 · 191 阅读 · 0 评论 -
muduo学习简单介绍
该栏的目的是做记录,方便自己后续查阅,同时帮助一些想要了解muduo库却没有头绪的同学。个人不会做特别详细的系统api用法的介绍,因为这一块网上已经有很多博主在做了,而且做的足够好。原创 2022-01-11 23:24:22 · 1926 阅读 · 0 评论