
一个可重复使用的线程安全生产者-消费者队列类。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
生产者、消费者队列的代码和相关文档以及实例,已经在 或其他网站上广泛传播,因此我将不再赘述。然而,常规文档中提供的示例往往难以直接应用于实际的项目开发,特地分享一个我以前编写的线程安全的生产者消费者队列类,其主要特点如下:首先,它允许设置队列中可容纳的最大长度;其次,该类具备线程安全性;此外,当多个线程尝试向队列中添加数据时,可以配置一个超时时间,用于等待队列中是否有空位。当检测到有空位时,会唤醒等待的线程并将数据添加到队列中。该类的函数原型为: `FTLThreadWaitType Append(const ELEMENT& element, DWORD dwTimeOut)`。 另外,当多个线程尝试从队列中移除数据时,可以设置一个超时时间来等待队列中是否有数据。当检测到有数据时,会唤醒等待的线程。该类的函数原型为: `FTLThreadWaitType Remove(ELEMENT& element, DWORD dwTimeOut)`。 此外,该类还支持安全的退出机制,即在等待加入数据或从队列中取出数据时,可以通过 `Stop` 函数直接唤醒等待线程。 进一步而言,该类支持动态调整队列大小——尽管我对该功能进行了有限的测试,可能存在潜在的Bug。如果发现任何问题请及时告知我。最后,如同我其他 FTL 类一样,该类也支持模板的使用。为了节省时间,本次只提供源码和单元测试代码(UT),不再编写示例程序了。下载后您需要自行根据实际情况进行相应的修改(如果您实在无法修改请随时回复我信息,我会尽力提供Demo)。博客地址:
全部评论 (0)
还没有任何评论哟~


