【发布时间】:2009-10-18 02:31:03
【问题描述】:
我想知道这是否是用 C++ 编写线程安全队列的正确方法?
template <class T>
class Queue
{
public:
Queue() {}
void Push(T& a)
{
m_mutex.lock();
m_q.push_back(a);
m_mutex.unlock();
}
T& Pop()
{
m_mutex.lock();
T& temp = m_q.pop();
m_mutex.unlock();
return temp;
}
private:
std::queue<t> m_q;
boost::mutex m_mutex;
};
你明白了......我只是想知道这是否是最好的方法。谢谢!
编辑: 由于我遇到的问题,我想澄清一下互斥锁是一个 boost::mutex
【问题讨论】:
标签: c++ multithreading concurrency thread-safety