c++11 并发队列的生产方案 BlockingConcurrentQueue

本文介绍了c++11实现的无锁并发队列BlockingConcurrentQueue,它具有线程安全、move语义优化、模板化、动态/预分配内存、批量处理和阻塞功能。通过CAS确保线程安全,利用move语义提升性能,并通过子队列隔离存储以提高存储性能。然而,当多生产者元素有顺序要求时,可能会出现出队顺序问题。
摘要由CSDN通过智能技术生成

ConcurrentQueue

这是我在生产中使用到的一个c++11 实现的无锁队列,有以下特性:

1、线程安全的无锁队列
2、支持c++11 的move语义,优化对象拷贝性能
3、模板化
4、可预分配内存、也可动态分配
5、支持批量处理
6、包含阻塞队列
7、异常安全

demo

将github里的文件 Blockingconcurrentqueue.h 跟 Concurrentqueue.h 加载到项目中

#include "Blockingconcurrentqueue.h"
//声明队列
moodycamel::BlockingConcurrentQueue<T> g_myQueue;

//工作函数监听队列消息
void concumer() {
   
	while (!_bStop) {
   
		T t;
		g_myQueue.wait_dequeue(T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值