<pre name="code" class="cpp">/*
* @note :队列
* @author :Andy.Ro
* @email :Qwuloo@qq.com
* @date :2014-06
*
*/
#ifndef _XQUEUE_H_INCLUDE_
#define _XQUEUE_H_INCLUDE_
#include "../xNet/xNetDll.h"
//------------------------------------------------------------------------
// node_t<TYPE> 节点
//------------------------------------------------------------------------
template < class TYPE > class /*XNET_API*/ q_node_t
{
public:
inline TYPE get_data(void)
{
return this->data;
}
public:
TYPE data;
q_node_t<TYPE> * prev,*next;
};
//------------------------------------------------------------------------
// block_q_node_t 单(一)个内存块,由N个节点 sizeof(q_node_t<TYPE>) 构成
//------------------------------------------------------------------------
template < class TYPE > class /*XNET_API*/ block_q_node_t
{
public:
// @note: 返回块数据部分
inline q_node_t<TYPE>* get_data(void)
{
return (q_node_t<TYPE> *)((char *)this + sizeof(block_q_node_t));
}
// @note: 申请单(一)个内存块
// @param header <block_q_node_t*&> : 块头
// @param tail <block_q_node_t*&> : 块尾
static block_q_node_t * create(block_q_node_t*& header, block_q_node_t*& tail, u32_t N)
{
//
/// sizeof(block_q_node_t) + sizeof(q_node_t<TYPE>) * N
//
block_q_node_t * block = (bl
FIFO队列并发同步访问 C++ 实现 ~~~
最新推荐文章于 2021-09-11 18:25:05 发布
本文介绍了一种使用C++实现的并发同步访问FIFO队列的方法,包括队列节点定义、内存块管理和队列操作如入队、出队。通过互斥锁实现了对头部和尾部节点的同步,确保了并发环境下的正确性。
摘要由CSDN通过智能技术生成