限制一个线程读,一个线程写,不加锁的队列,使用单链表实现,测试环境:centos 5.9
[root@localhost test]# cat test.cpp
#include <iostream>
#include <pthread.h>
template<class QElmType>
struct qnode
{
struct qnode *next;
QElmType data;
};
template<class QElmType>
class queue
{
public:
queue() {init();}
~queue() {destroy();}
bool init()
{
m_front = m_rear = new qnode<QElmType>;
if (!m_front)
return false;
m_front->next = 0;
return true;
}
void destroy()
{
while (m_front)
{
m_rear = m_front->next;
delete m_front;
m_front = m_rear;
}
}
bool push(QElmType e)