stack(栈)和queue(队列)也是在程序设计中经常会用到的数据容器,STL为我们提供了方便的stack(栈)的queue(队列)的实现。准确地说,STL中的stack和queue不同于vector、list等容器,而是对这些容器的重新包装。这里我们不去深入讨论STL的stack和queue的实...
分类:
其他好文 时间:
2014-12-16 16:56:02
阅读次数:
137
在之前的一篇博客中,写了一个在特殊情况下,也就是只有一个读线程和一个写线程的情况下,的无锁队列的实现。其中甚至都没有利用特殊的原子加减操作,只是普通的运算。这样做的原因是,即使是特殊的原子加减操作,也比普通的加减运算复杂度高很多。因此文中的实现方法可以达到很高的运行效率。但是,有的情况下并不是只有一...
分类:
编程语言 时间:
2014-12-09 00:15:40
阅读次数:
300
队列的基本操作包括入队enqueue和出队dequeue,队列有队头head和队尾tail指针。元素总是从队头出,从队尾入。采用数组实现队列时候,为了合理利用空间,可以采用循环实现队列空间的有效利用。
...
分类:
编程语言 时间:
2014-11-24 22:36:08
阅读次数:
325
栈和队列都是动态集合,元素的出入是规定好的。栈规定元素是先进后出(FILO),队列规定元素是先进先出(FIFO)。栈和队列的实现可以采用数组和链表进行实现。在标准模块库STL中有具体的应用,可以参考http://www.cplusplus.com/reference/。
栈的基本操作包括入栈push和出栈pop,栈有一个栈顶指针top,指向最新如栈的元素,入栈和出栈操作操作都是从栈顶端进...
分类:
编程语言 时间:
2014-11-24 10:11:18
阅读次数:
155
消息队列的实现中,RabbitMQ以其健壮和可靠见长.公司的项目中选择了它作为消息队列的实现.关于MQ的机制和原理网上有很多文章可以看,这里就不再赘述,只讲几个比较容易混淆的问题1,binding key和routing key binding key和routing key是都不过是自己设置的一....
分类:
Web程序 时间:
2014-11-18 00:16:03
阅读次数:
197
链式队列数据结构如下:
typedef struct qnode{
ElemType data;
struct qnode* next; //指向下一节点指针
}QNode;
typedef struct{
QNode* front; //队首指针
QNode* rear; //队尾指针
}ListQueue;
实现以下函数:
vo...
分类:
其他好文 时间:
2014-11-15 21:49:44
阅读次数:
415
顺序队列的数据结构如下:
typedef struct {
ElemType data[MaxSize];
int front,rear; //front队首指针,rear队尾指针
}SqQueue;
实现下列函数:
void InitQueue(SqQueue* &q); //初始化队列
void ClearQueue(SqQueue* ...
分类:
其他好文 时间:
2014-11-15 20:19:30
阅读次数:
234
自己在Excel整理了很多想写的话题,但苦于最近比较忙(其实这是借口)。。。。 上篇文章《.Net中的并行编程-4.实现高性能异步队列》介绍了异步队列的实现,本篇文章介绍我实际工作者遇到了处理多线程问题及基于异步队列底层数据结构的解决方案。 需求如下:1.提供数据服写入务供上层应用调用,数据写入服务...
分类:
Web程序 时间:
2014-11-09 06:14:05
阅读次数:
203
关于无锁队列的概念与实现,可以参考博文《无锁队列的实现》,主要涉及到的知识点包括CAS原子操作、无锁队列的链表实现、无锁队列的数组实现以及ABA问题。 下面借鉴了《多线程的那点儿事(之无锁队列)》的代码,说明两个线程(一个添加一个读取数据)之间的无锁队列,可以不借助线程互斥方法就能够达到并行效...
分类:
编程语言 时间:
2014-11-04 10:36:38
阅读次数:
226
LinkedList提供了方法支持队列的行为,并且它实现了Queue接口,因此LinkedList可以用作Queue的一种实现。
PriorityQueue:优先队列的实现...
分类:
编程语言 时间:
2014-10-26 21:18:38
阅读次数:
377