一个可以重用的线程安全生产者消费者队列类

生产者、消费者队列的代码和文档和例子,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://download.csdn.net/detail/fishjam/5284777

猜你喜欢

转载自blog.csdn.net/fishjam/article/details/8832145
今日推荐