找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4081|回复: 1

ACE中的读写锁

[复制链接]
发表于 2009-11-26 13:34:06 | 显示全部楼层 |阅读模式
在ACE的读写锁中,ACE_READ_GUARD展开如下:

# define ACE_READ_GUARD(MUTEX,OBJ,LOCK) \
  ACE_Read_Guard< MUTEX > OBJ (LOCK); \
    if (OBJ.locked () == 0) return;

我发现所有的ACE守卫类中都有 if (OBJ.locked () == 0) 的判断,
我想问一下,OBJ.locked () 等于0的时候多吗?在什么情况下等于0?
是在被别的线程锁定的时候等于0吗?

[ 本帖最后由 admin11 于 2009-11-26 13:41 编辑 ]
发表于 2009-11-26 15:12:52 | 显示全部楼层
正常情况下应该不会==0。

“在什么情况下等于0?是在被别的线程锁定的时候等于0吗?”
可以去看对应的OBJ.locked ()源码,比如ACE_Thread_Mutex:: locked ()
看它在什么情况下会返回0
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-12-23 13:07 , Processed in 0.024925 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表