ACE_GUARD开头的锁

来源:互联网 发布:php财务管理系统 编辑:程序博客网 时间:2024/04/27 09:26
#define ACE_GUARD_ACTION(MUTEX, OBJ, LOCK, ACTION, REACTION) \   ACE_Guard< MUTEX > OBJ (LOCK); \   if (OBJ.locked () != 0) { ACTION; } \   else { REACTION; }#define ACE_GUARD_REACTION(MUTEX, OBJ, LOCK, REACTION) \ ACE_GUARD_ACTION(MUTEX, OBJ, LOCK, ;, REACTION)#define ACE_GUARD(MUTEX, OBJ, LOCK) \ ACE_GUARD_REACTION(MUTEX, OBJ, LOCK, return)#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN) \ ACE_GUARD_REACTION(MUTEX, OBJ, LOCK, return RETURN)

这是ACE定义的宏,用这些宏可以方便地节省很多代码量,虽然实际上代码就是一样的。Metex代表锁的种类,Obj代表ACE_Guard的对象,ACTION代表成功的动作,REACTION代表加锁失败的动作。
在ACE中存在读锁和写锁的区别,所以这些宏ACE_Guard也会派生出读锁和写锁。ACE_Guard存在显示的加锁和解锁,但在构造的时候会默认加锁。析构的时候会根据对象是否认为已经加锁,来进行解锁。当然还存在一些其他函数,但这并非是重点了。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 浓硫酸洒在皮肤上怎么办 浓硫酸溅到眼睛里怎么办 盐酸弄到眼睛了怎么办 稀硫酸进眼睛里怎么办 草酸弄到皮肤上怎么办 大理石被盐酸烧发白怎么办 香薰蜡烛化了怎么办 吸入了大量燃烧纸气体怎么办 狗链条上锈了怎么办 思维迟钝反应慢嘴笨怎么办 小孩思维慢反应迟钝怎么办 苹果4g网络慢怎么办 医院没有号了怎么办啊 fgo宝具动画卡顿怎么办 死刑犯在执行前死亡怎么办 汕头交警 违章扣分怎么办办理 幼儿园家长不保险应该怎么办 csgo掉白银坑了怎么办 错过教资认定现场确认怎么办 乡村建设导致民房开裂怎么办 项目部公章丢了怎么办 手机掉了没有卡怎么办 苹果系统软件删了还是出现怎么办 钉钉检测到作弊怎么办 电脑麦说话声音小怎么办 穿越火线麦克风有杂音怎么办 手闲不住就抠东西怎么办 大便堵在肛门口怎么办 在外地流量不够用怎么办 电脑键盘数字键没反应怎么办 音响音量键坏了怎么办 摩托罗拉移动电话通话没声音怎么办 摩托罗拉对讲机充电座坏了怎么办 手机导航键太灵敏怎么办 经侦大队不立案怎么办 槐茂酱菜太咸怎么办 法院执法局执法不公怎么办 搞养殖卖不出去怎么办 孔雀吃了蚯蚓该怎么办 多肉幼苗长徒了怎么办 小鸵鸟嘴断了怎么办