Chinaunix首页 | 论坛 | 博客
  • 博客访问: 659061
  • 博文数量: 186
  • 博客积分: 1875
  • 博客等级: 上尉
  • 技术积分: 2117
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 23:21
个人简介

有时候,就是想窥视一下不知道的东东,因为好奇!

文章分类

全部博文(186)

文章存档

2024年(2)

2023年(3)

2020年(1)

2019年(1)

2018年(1)

2017年(2)

2016年(69)

2015年(53)

2014年(14)

2013年(1)

2012年(5)

2011年(25)

2010年(9)

分类: LINUX

2011-02-14 22:31:25

p { margin-bottom: 0.21cm; }

读写自旋锁

1.读写自旋锁

      对链表更新和检索的时候,锁的用途可以明确的分为读取和写入。写操作必须要求并发保护,但读操作的并发是安全的。只要没有内核控制路径对数据结构进行修改,就可以允许多个内核控制路径同时读取同一个数据结构。反之,如果要对数据结构进行修改,那么它必须首先获取锁,独占这个资源。

      分开处理读取和写入锁可以提高锁的效率。

      读写锁机制更照顾读者。当读锁被持有时,写者必须等待,直到所有读者释放锁,而其它读者却可以继续获取锁

2.linux内核中的读写自旋锁

初始化

      rwlock_t my_rwlock = RW_LOCK_UNLOCKED

      rwlock_init(&my_rwlock)

加锁

      read_lock()

      read_lock_irq()

      read_lock_irqsave()

      read_lock_bh()


      write_lock()

      write_lock_irq()

      write_lock_irqsave()

      write_lock_bh()


解锁

      read_unlock()

      read_unlock_irq()

      read_unlock_irqsave()

      read_unlock_bh()


      write_unlock()

      write_unlock_irq()

      write_unlock_irqsave()

      write_unlock_bh()

阅读(896) | 评论(0) | 转发(0) |
0

上一篇:自旋锁

下一篇:信号量

给主人留下些什么吧!~~