//LockedList.h 带锁定的list
#pragma once
//缺点什么头文件自己加上啊
#include <mutex>
#include <condition_variable>
template<typename T>
class LockedList :private list<T>
{
private:
mutex m_mutex;//互斥锁
public:
using list<T>::iterator;
typename list<T>::iterator locked_begin()
{
m_mutex.lock();
typename list<T>::iterator it = this->begin();
m_mutex.unlock();
return it;
}
typename list<T>::iterator locked_end()
{
m_mutex.lock();
typename list<T>::iterator it = this->end();
m_mutex.unlock();
return it;
}
size_t locked_size()
{
m_mutex.lock();
size_t ret = this->size();
m_mutex.unlock();
return ret;
}
void locked_push_back(T const& data)
{
m_mutex.lock();
this->push_back(data);
m_mutex.unlock();
}
void locked_push_front(T const& data)
{
m_mutex.lock();
this->push_front(data);
m_mutex.unlock();
}
void locked_pop_front()
{
m_mutex.lock();
this->pop_front();
2024年网安最新套路化编程:C++ 线程安全的List_c++ list线程安全
最新推荐文章于 2025-05-06 15:18:48 发布
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印


1万+

被折叠的 条评论
为什么被折叠?



