前言
我是跟着陈硕大神的《Linux多线程服务端编程:使用muduo C++网络库》书学习muduo的。
书看了不到1/3,一直对着书和代码学习,还是有些累的,而且根据我以往的经验,我看书看完后,一般就不去管它了,久而久之,我就忘记了我看过/学过的内容了(我一直都觉得我的记忆力只有7天),因此我打算写写自己至今的读书心得吧
书中抛出了许多多线程编程方面的思考,需要慢慢理解。
muduo中也有许多C++11的编程技巧和编程思想。
解决问题时,要解决的子问题,以及提出的解决方案可能带来的新问题。
要实现一个功能,要考虑设计这个功能时,可能会遇到的问题,该怎么解决呢?为什么这样解决比较好呢?
muduo分为基础库(base)和网络库(net)两大部分
muduo/base下的头文件
这些头文件的文件名也对应了muduo库在base文件夹下实现的功能
├── AsyncLogging.h 异步日志backend:采用可扩充的Buffer块
├── Atomic.h 原子操作与原子整数
├── BlockingQueue.h 无界阻塞队列(生产者消费者队列):用链表实现(猜测)
├── BoundedBlockingQueue.h 有界阻塞队列:用数组实现(猜测)
├── Cond