专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅
项目中需要线程之间共享一个缓冲FIFO队列,一个线程往队列中添数据,另一个线程取数据(经典的生产者-消费者问题)。开始考虑用STL的vector容器, 但不需要随机访问,频繁的删除最前的元素引起内存移动,降低了效率。使用LinkList做队列的话,也需要频繁分配和释放结点内存。于是自己实现一个有限大小的FIFO队列,直接采用数组进行环形读取。 队列的读写需要在外部进程线程同步(另外写了一个RWGuard类, 见另一文) 到项目的针对性简单性,实现了一个简单的环形缓冲队列,比STL的vector简单 PS: 第一次使用模板,原来类模板的定义要放在. [阅读全文] [PDF]
/*@file test.c*/ /*动态增大队列测试程序*/ /*先分配12个元素,清除队列后,再分配20个元素入队列,演示队列动态增大*/ /*mingGW compiled ok*/ typedef int ElemType; #include "allhead.h" #include "quque.h" #include "fun.h" void main() { Status j; int i,n=11; ElemType d; SqQueue Q; InitQueue(&Q); [阅读全文] [PDF]
1 共2条 分1页