C++实现生产者与消费者模式

代码:

#include <iostream>

#include <mutex>

#include <condition_variable>

#include <queue>

#include <list>

#include<map>

#include<string.h>

using namespace std;

#include <thread>

/*

生产者-单消费者

*/

typedef struct stc_Cam_image

{

int32_t priority; //优先级属性

// int64_t u64InTime; //进入队列时间(us)

// int32_t nBuffLen; //数据长度

u_int32_t data; //数据缓存

double timestamp;

bool islongExepose;

} Cam_image;


 

typedef int PRIORITY; //0 is highest level

typedef std::vector<std::shared_ptr<Cam_image>> MSG_QUEUE; //存放数据的容器

static std::mutex mtx; //本队列使用的锁

static std::condition_variable cv; //本队列与锁对应的条件变

//数据优先级与Vector关联的MAP

static std::map<PRIORITY, MSG_QUEUE> PriorityQueue{

{0, std::vector<std::shared_ptr<Cam_image>>{}},

{1, std::vector<std::shared_ptr<Cam_image>>{}},

{2, std::vector<std::shared_ptr<Cam_image>>{}},

{3, std::vector<std::shared_ptr<Cam_image>>{}},

{4, std::vector<std::shared_ptr<Cam_image&g

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值