- 缓冲区的实现
类似于生产者消费者模型,往缓冲区添加任务相当于生产者,从缓冲区提取任务相当于消费者,Muduo库使用条件变量加互斥锁实现的有界和无界缓冲区
简易的条件变量加互斥锁实现的生产者消费者模型(无界)实现:
http://blog.csdn.net/zjf280441589/article/details/43883113
有界缓冲区
class BoundedBlockingQueue : noncopyable
{
public:
explicit BoundedBlockingQueue(int maxSize)
: mutex_(),
notEmpty_(mutex_),
notFull_(mutex_),
queue_(maxSize)
{
}
void put(const T& x)
{
MutexLockGuard lock(mutex_