Chinaunix

标题: 再问一个简单问题:spinlock_t,和rwlock_t [打印本页]

作者: wwwspirit    时间: 2006-02-22 09:41
标题: 再问一个简单问题:spinlock_t,和rwlock_t
这两者都到底有多少区别呢?
后者可以取代前者使用吗?
我最近特忙,没有时间找资料,只好拿这么多简单问题出来,大家勿责怪
作者: albcamus    时间: 2006-02-22 09:52
rw锁一般情况不用, 用普通的自旋锁足够了。
作者: wwwspirit    时间: 2006-02-22 10:00
我简单看了一下定义,spinlock用来在多CPU环境中,rwlock用在多进程/多线程的临界资源访问控制中。那岂不是通常情形下用后者吗?在内核开发中应该没有线程/进程的概念吧?那用哪个锁?
对于多进程多线程环境,用rwlock后是不是还要用spinlock(如果有不止一个CPU的话??)
谁能帮我完整的讲一讲它们的用途和区别?
作者: todaygood    时间: 2011-04-11 08:20
可见LDD3 ,P122
rwlock_t 允许多个读取者同时进入临界区, 但写入者必须互斥访问。
也就是说:
A     read_lock  .prog1..   read_unlock,在执行prog1时,
此时B  read_lock 也可以获得该锁。
同时如果C: write_lock ,就获得不了该锁,必须等A,B都释放该锁才行。

使用的场景,我觉得,区别在于,是否允许多个读者同时读 。如果允许,则用读写锁,否则,用普通自旋锁。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2