C++对象锁模版
来源:互联网 发布:台达人机界面编程软件 编辑:程序博客网 时间:2024/06/06 20:13
实现原理:
1、利用临时对象做保护
template<class T>
class TempObject {
T* m_ptr;
Lock& m_lock;
public:
TempObject (Lock& lock, T* ptr) : m_ptr(ptr), m_lock(lock) {
m_lock.lock();
}
~TempObject () {
m_lock.unlock();
}
T* operator->() { return m_ptr; }
};
2、转调用为临时对象的调用
template<class T>
class ProxyObject {
T* m_ptr;
Lock m_lock;
public:
ProxyObject (T* t) : m_ptr(t) {}
TempObject operator->() {
TempObject to(m_lock, m_ptr);
return to;
}
};
3、调用
class Test {
...
public:
void fun() {...}
};
Test* pobj = new Test();
ProxyObject<Test> pT;
pT->fun();
// 进行如下转化
// TempObject tmp = pT.operator->() ;
// Test* ptr = tmp.operator->() ;
//ptr ->fun();
- C++对象锁模版
- c语言图形模版
- 用C也能写模版
- 模版文件 target.c
- 邻接表模版c+
- Template模版实例(C++)
- 【C++】模版矩阵类
- C++template--函数模版
- 【c++】函数模版
- c++模版
- 【C++】认识模版函数
- C/C++模版
- C++——模版:函数模版
- C++——模版:类模版
- 数据结构模版----单链表SimpleLinkList[带头结点&&面向对象设计思想](C语言实现)
- vm模版调用对象方法
- Thymeleaf模版遍历JSON对象
- [C++] 模版双向鍊表
- 利用matlab进行简单的贝叶斯网络构建
- 给定key值,在Binary Search Tree中查找最接近该键值的结点集合
- WebKit 布局Layout
- 边际成本与边际利益
- 面向对象多态和重载
- C++对象锁模版
- 软件架构——架构师的职责
- 【云计算】NoSQL入门级资料整理(CAP原理、最终一致性)
- sql子查询 嵌套SELECT语句
- 谷歌10G高速免费空间Google App Engine安装博客、绑定域名图文教程
- 软件需求学习小结
- strcmp && strcpy && strlen && strcat 源码
- c++类的构造函数详解
- cocos2d-2.0-x-2.0.3多平台环境搭建(android, win32)