文件名称:一个可以重用的线程安全生产者消费者队列类
文件大小:7KB
文件格式:ZIP
更新时间:2016-05-11 15:44:04
生产者 消费者 队列
生产者、消费者队列的代码和文档和例子,CSDN或别的网站上已经有很多了,我就不再多说了。不过一般的文档中给出的例子往往只是“例子”,要用于实际的项目开发中差的很远,共享一下我以前写的一个线程安全的生产者消费者队列类。具有如下特点: 1.可以设置队列中的最大长度; 2.线程安全; 3.多线程想向队列中放入数据时,可设置等待队列有空位的超时时间,当有空位时,等待线程会被唤醒并将数据加入队列。函数原型为:FTLThreadWaitType Append(const ELEMENT& element, DWORD dwTimeOut). 4.多线程从队列中取出数据时,可设置等待队列有数据的超时时间, 当有数据时等待线程会被唤醒。函数原型为:FTLThreadWaitType Remove(ELEMENT& element, DWORD dwTimeOut), 5.支持安全的退出,即如果在等待加入数据或取出数据时,能直接通过Stop唤醒。 6.支持动态改变队列大小 -- 但这个功能我测试的不是很多,可能有Bug,如发现有Bug请告诉我。 7.和我其他FTL中的类一样,支持模版。 本次就偷一下懒,只上传源码和UT代码,就不再写示例程序了。下载了源码以后需要自己对应更改一下(如果实在更改不来,可以给我回复信息,我有空时再写个Demo放上来)。 博客地址:http://blog.csdn.net/fishjam/article/details/8832145
【文件预览】:
PRTest.cpp
FProducerResumerQueue.hpp
FProducerResumerQueue.h