C++实现简单的线程安全队列
2021-06-07 21:02
标签:return one 实现 安全 一个 element rgb private unique C++实现简单的线程安全队列 标签:return one 实现 安全 一个 element rgb private unique 原文地址:https://www.cnblogs.com/LuckCoder/p/14549952.html/*
实现一个线程安全的队列
*/
template class T>
class SafeQueue
{
public:
SafeQueue(void):q(),m(),c()
{}
~SafeQueue(void)
{}
// Add an element to the queue.
void enqueue(T t)
{
std::lock_guard<:mutex>lock(m);
q.push(t);
c.notify_one();
}
// Get the "front"-element.
// If the queue is empty, wait till a element is avaiable.
T dequeue(void)
{
std::unique_lock<:mutex>lock(m);
while (q.empty())
{
// release lock as long as the wait and reaquire it afterwards.
c.wait(lock);
}
T val = q.front();
q.pop();
return val;
}
private:
std::queue
上一篇:libevent实现多线程
下一篇:数组作为函数参数传递