代码:
#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