本实现是根据C++11 中的 queue 结合 mutex实现
废话不多说,直接上代码:
#ifndef _RT_QUEUE_H_
#define _RT_QUEUE_H_
#include <queue>
#include <mutex>
template <class T>
class CRtQueue
{
public:
void push(T e)
{
std::lock_guard<std::mutex> locker(m_queueMutex);
m_queue.push(e);
}
void emplace(T e)
{
std::lock_guard<std::mutex> locker(m_queueMutex);
m_queue.emplace(e);
}
void pop()
{
std::lock_guard<std::mutex> locker(m_queueMutex);
return m_queue.pop();
}
T front()
{
std::lock_guard<std::mutex> locker(m_queueMutex);
return m_queue.front();
}
T back()
{
std::lock_guard<std::mutex> locker(m_queueMutex);
return m_queue.back();
}
bool empty()
{
std::lock_guard<std::mutex> locker(m_queueMutex);
return m_queue.empty();
}
int size()
{
std::lock_guard<std::mutex> locker(m_queueMutex);
return m_queue.size();
}
private:
std::mutex m_queueMutex