免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5554 | 回复: 3
打印 上一主题 下一主题

再问一个简单问题:spinlock_t,和rwlock_t [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-22 09:41 |只看该作者 |倒序浏览
这两者都到底有多少区别呢?
后者可以取代前者使用吗?
我最近特忙,没有时间找资料,只好拿这么多简单问题出来,大家勿责怪

论坛徽章:
0
2 [报告]
发表于 2006-02-22 09:52 |只看该作者
rw锁一般情况不用, 用普通的自旋锁足够了。

论坛徽章:
0
3 [报告]
发表于 2006-02-22 10:00 |只看该作者
我简单看了一下定义,spinlock用来在多CPU环境中,rwlock用在多进程/多线程的临界资源访问控制中。那岂不是通常情形下用后者吗?在内核开发中应该没有线程/进程的概念吧?那用哪个锁?
对于多进程多线程环境,用rwlock后是不是还要用spinlock(如果有不止一个CPU的话??)
谁能帮我完整的讲一讲它们的用途和区别?

论坛徽章:
0
4 [报告]
发表于 2011-04-11 08:20 |只看该作者
可见LDD3 ,P122
rwlock_t 允许多个读取者同时进入临界区, 但写入者必须互斥访问。
也就是说:
A     read_lock  .prog1..   read_unlock,在执行prog1时,
此时B  read_lock 也可以获得该锁。
同时如果C: write_lock ,就获得不了该锁,必须等A,B都释放该锁才行。

使用的场景,我觉得,区别在于,是否允许多个读者同时读 。如果允许,则用读写锁,否则,用普通自旋锁。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP