// 通用库
namespace Common
{
namespace Thread
{
// 线程安全通用数据类型
template <typename Type>
class CThreadData
{
public:
CThreadData() : m_data()
{
pthread_mutex_init(&m_lock, NULL);
}
~CThreadData()
{
pthread_mutex_destroy(&m_lock);
}
// 重载赋值操作符
CThreadData& operator =(const Type& data)
{
pthread_mutex_lock(&m_lock);
m_data = data;
pthread_mutex_unlock(&m_lock);
return *this;
}
// 重载类型转换符
operator Type()
{
pthread_mutex_lock(&m_lock);
Type data = m_data;
pthread_mutex_unlock(&m_lock);
return data;
}
private:
// 禁止自身复制
CThreadData(const CThreadData&);
CThreadData& operator =(const CThreadData&);
protected:
pthread_mutex_t m_lock;
Type m_data;
};
}
}
线程安全通用数据类型类
最新推荐文章于 2022-05-28 23:48:27 发布