super皮波 发表于 2014-07-08 13:57

关于读写锁的问题

假如当前一个写进程获得写锁,这时同时有读者和写者同时要求或者这个锁的时候,当写者锁被释放的情况下,是读者会取得锁还是写者会取得锁?我看代码好像是随机的呢?

super皮波 发表于 2014-07-08 16:54

怒顶一下,了解的说一下呗

chenyu105 发表于 2014-07-09 11:21

1. 锁在释放锁时,读者写者谁先抢到就给谁;
2. 一般情况下,读者比写者更容易拿到锁,因为写者与读者互斥,而读者之间则不互斥;
3. 在读多写少的情况下,为了不饿死写者,可以用rcu;
4.如果为了公平性,可以用排队spinlock

super皮波 发表于 2014-07-09 11:28

你的意思也是在当前写者拿到锁的情况下,如果释放的话,读者和写者不一定谁会拿到锁?
回复 3# chenyu105


   

chenyu105 发表于 2014-07-09 12:14

回复 4# super皮波
是的。
页: [1]
查看完整版本: 关于读写锁的问题