
muduo网络库
月光骆驼
好久不更新了,学到了很多都还没总结,todo已经行成递归了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
muduo网络库:使用无界缓冲区 BlockingQueue<T>设计生产者消费者模式
BlockingQueue 和 BoundedBlockingQueue 是 muduo 库设计的两个类,其中BlockingQueue 作为无界缓冲区,BoundedBlockingQueue作为有界缓冲区。陈硕的muduo库是开源的,感兴趣的可以自己找找代码看一下,下面对二者进行简单的介绍。 BlockingQueue 是一种加锁的 deque 不知道我这么评价陈硕写的 BlockingQue...原创 2019-06-18 21:39:30 · 482 阅读 · 0 评论 -
muduo网络库:线程池的实现
线程池问题本质上也是一个生产者-消费者问题 外部线程可以向线程池中的任务队列添加任务,相当于“生产者”;一旦任务队列中有任务,就唤醒线程队列中的线程来执行这些任务,这些线程就相当于“消费者”。模型如下图。 muduo ThreadPool类图: 任务队列的实现用到了STL的deque容器 deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高...原创 2019-06-19 09:15:39 · 1418 阅读 · 0 评论 -
muduo网络库:Reactor模型的介绍
首先我们先了解几个问题: 多线程能提高并发度吗? 如果指的是“并发连接数”,那么不能。 假如单纯采用 thread per connection 的模型,对于32位 linux,一个进程的地址空间是4G,其中用户态能访问3G左右,而一个线程的默认栈大小为10M,心算可以得到,一个进程大约最多能同时启动300个线程左右,这远远低于基于事件单线程程序所能轻松达到的并发连接数(几千上万,甚至几万)。所谓...原创 2019-06-19 13:23:22 · 1259 阅读 · 0 评论