一个可以重用的线程安全生产者消费者队列类
来源:互联网 发布:linux如何卸载mysql 编辑:程序博客网 时间:2024/06/01 13:17
生产者、消费者队列的代码和文档和例子,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
- 一个可以重用的线程安全生产者消费者队列类
- 实现一个线程安全的队列,并模拟进行生产者-消费者问题
- 用生产者消费者模型实现的线程安全环形队列
- 实现一个生产者消费者队列
- 线程安全的消息排队机制和生产者消费者模型
- Multi-Programming-8 线程安全类实现生产者和消费者
- 消费者和生产者问题的实现-基于线程安全的容器来和非线程安全的容器类
- 生产者/消费者模式(阻塞队列) 一个经典的并发模型
- 生产者/消费者模式(阻塞队列) 一个经典的并发模型
- 生产者/消费者模式(阻塞队列) 一个经典的并发模型
- 一个生产者一个消费者的无锁队列,多个生产者多个消费者的无锁队列
- 线程池+阻塞队列 模仿生产者消费者
- 生产者消费者-线程-链表-队列实现
- 线程池 队列生产者消费者模型实现
- 线程演示生产者和消费者的一个例子
- [实现一个队列]一个生产者线程将int类型的数入列,一个消费者线程将int类型的数出列
- 线程的生产者消费者复习
- 线程的通信-生产者消费者
- UvaLive-5902-Movie collection
- hdu 2151 Worm
- linux kernel经典参考书籍
- 实现并打印小于9的任意整数的n*n乘法表
- 对象数组与构造函数
- 一个可以重用的线程安全生产者消费者队列类
- 看看Java还能风骚几年
- java中内存解析
- jdk1.5新特性之泛型总结1
- Android提高第十篇之AudioRecord实现"助听器"
- 可信计算的研究与发展
- 美妙的微机原理2013/4/21
- HDU2717:Catch That Cow
- sqlite3详解