更新队列长度为1,避免残留问题

This commit is contained in:
karllzy 2024-12-26 12:34:32 +08:00
parent c30ae1e12d
commit a212ca4d4d

View File

@ -58,13 +58,18 @@ struct DetectionResult {
extern DetectionResult g_detection_result[2]; extern DetectionResult g_detection_result[2];
// 线程安全队列模板类 // 线程安全队列模板类
// 线程安全队列模板类最大长度为1避免队列数据或者结果的积压
template <typename T> template <typename T>
class ThreadSafeQueue { class ThreadSafeQueue {
public: public:
// 添加元素到队列 // 添加元素到队列如果队列已满长度为1则移除旧元素
void enqueue(const T& item) void enqueue(const T& item)
{ {
std::unique_lock<std::mutex> lock(mutex_); std::unique_lock<std::mutex> lock(mutex_);
if (queue_.size() >= 1)
{
queue_.pop(); // 移除旧的元素
}
queue_.push(item); queue_.push(item);
cond_var_.notify_one(); cond_var_.notify_one();
} }