随笔分类 -  muduo源码剖析

相关代码取自陈硕先生的muduo库以及《Linux多线程服务端编程》
muduo库中的核心:std::bind和std::function
摘要:最近在读完陈硕大牛的《Linux多线程服务端编程》以及muduo源码后,对其中的一些实现细节有着十分深刻的印象,尤其是使用std::bind和std::function的回调技术。可以说,这两个大杀器简直就是现代C++的“任督二脉”,甚至可以解决继承时的虚函数指代不清的问题。在此详细叙述使用std: 阅读全文

posted @ 2018-06-16 18:53 ukernel 阅读(527) 评论(0) 推荐(2)

浅析muduo库中的定时器设施
摘要:一个设计良好的定时器在服务端的应用程序上至关重要,muduo定时器的实现陈硕大牛在书中已经详细的谈过,笔者尝试从源码的角度解读定时器的实现,如果理解不对,欢迎指正。 在muduo的定时器系统中,一共由四个类:Timestamp,Timer,TimeId,TimerQueue组成。其中最关键的是Tim 阅读全文

posted @ 2018-06-16 18:52 ukernel 阅读(480) 评论(0) 推荐(0)

muduo库中TcpServer一次完整的工作流程
摘要:模拟单线程情况下muduo库的工作情况 muduo的源代码对于一个初学者来说还是有一些复杂的,其中有很多的回调函数以及交叉的组件,下面我将追踪一次TCP连接过程中发生的事情,不会出现用户态的源码,都是库内部的运行机制。下文笔者将描述一次连接发生的过程,将Channel到加入到loop循环为止。 监听 阅读全文

posted @ 2018-06-16 18:51 ukernel 阅读(1633) 评论(1) 推荐(1)

浅析muduo库中的线程设施
摘要:muduo是目前我在学习过程中遇到的最具有学习意义的网络库,下文将分析muduo库中的基础设施 Thread和ThreadPool. 首先,介绍在多线程编程中不可缺少的同步措施 Mutex和Condition. + Mutex 有四种操作互斥锁的方式:创建,销毁,加锁,解锁。在muduo中,用一个低 阅读全文

posted @ 2018-06-16 18:49 ukernel 阅读(624) 评论(0) 推荐(0)

导航