c++ 阻塞队列的实现
来源:互联网 发布:好用的隔离霜 知乎 编辑:程序博客网 时间:2024/05/20 05:23
#include <memory>#include <mutex>#include <condition_variable>#include <queue>#include <chrono>namespace WPAYRTL{template<class T>class BlockingQueue{public:BlockingQueue() {}~BlockingQueue() {}void offer(std::shared_ptr<T> &e){{std::unique_lock<std::mutex> lockGard(_myMutex);_queue.push(e);}_myVariable.notify_all();}std::shared_ptr<T> take(){std::unique_lock<std::mutex> lockGard(_myMutex);_myVariable.wait(lockGard, [&] {return _queue.size() > 0;});std::shared_ptr<T> e = _queue.front();_queue.pop();return e;}std::shared_ptr<T>take(std::chrono::milliseconds& time){std::unique_lock<std::mutex> lockGard(_myMutex);bool result = _myVariable.wait_for(lockGard, time, [&] {return _queue.size() > 0;});if (!result){return nullptr;}std::shared_ptr<T> e = _queue.front();_queue.pop();return e;}private:std::queue<std::shared_ptr<T>> _queue;std::mutex _myMutex;std::condition_variable _myVariable;};}
0 0
- Java阻塞队列的实现
- Java阻塞队列的实现
- Java阻塞队列的实现
- Java阻塞队列的实现
- Java阻塞队列的实现
- c++ 阻塞队列的实现
- Java阻塞队列的实现
- 一个简单的阻塞队列实现
- c++ 多线程阻塞队列的简单实现
- java模拟阻塞队列的实现
- 阻塞队列实现的生产者/消费者模式
- Java:实现简单的阻塞队列
- 使用数组简单实现的阻塞队列
- 通过Condition实现自己的阻塞队列
- Java5实现阻塞队列
- 实现阻塞队列
- C++阻塞队列实现
- Java5实现阻塞队列
- 搭建linux服务器之SecureCRT乱码
- 找bug记
- Android简单定位实例
- UVA 1471(p242)----Defense Lines
- studio删除项目
- c++ 阻塞队列的实现
- 基因数据处理2之ftp数据快速查找
- unity 快速创建小地图
- poj2251 搜索
- iOS项目实践之时光电影(二)
- 随口唠叨
- ubuntu 14.04开启root账户
- Problem A: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换
- Linux内核分析(三)