这个无锁是有问题的,没有保存内存读写有序,举例: 1.push的时候,m_rear 已经更新到下个节点,但是m_rear->data = e;这句还没有执行完成 2.假设队列只有上面push的节点。 pop的话,执行到这句*e = p->data;就可能取的是不完整的脏数据。