项目中需要线程之间共享一个缓冲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页
- 单片机数码管:51单片机数码管显示的好帮手---MAX...
- 点阵显示屏:智能点阵显示屏HCMS-29xx/39xx及其应用
- 单片机教程:单片机编程入门七
- 汇编语言指令集:IBM-PC汇编语言指令集
- 数据传送指令:MCS-51数据传送指令
- 0083智能工社:浅谈足球游戏的人工智能
- 提拔将领:即时战略游戏将领指挥AI方案设想
- directinput:DirectInput 鼠标编程入门
- 实现爆炸后的振动效果
- 飞机射击类小游戏:有关飞机射击类游戏的设计原理
- 音效最好的播放器:游戏音乐和音效的播放
- 游戏调试:利用双计算机调试游戏程序
- 多任务处理:游戏中的多任务处理
- 电脑游戏中的人工智能制作
- 系统升级:角色扮演游戏的升级系统研究
- rpg游戏制作:深入RPG游戏制作—图形篇
- directdraw:通向DirectDraw的捷径
- 3d场景:如何在3D场景中加入Fog
- 游戏搜索:论游戏中的搜索问题(初级篇)
- directx如何使用:使用DirectX优化声音特性