系统程序员成长计划-并发(四)(上)
来源:互联网 发布:js string常用方法 编辑:程序博客网 时间:2024/04/20 03:13
读写锁
在前面的实现中,像dlist_length这类的查询函数也要加锁,那样才能保证在查询过程中对象的状态不会被其它线程所改变。加锁阻止了其它线程修改对象,也阻止其它线程查询对象。如果大多数情况下,线程只是查询对象的状态而不修改它,这种设计不是一种高效的方法,因为它不允许多个线程同时查询。我们能不能实现一种锁,它能串行化对数据结构的修改,而同时支持并行的查询呢?
这就是所谓的读写锁,也称为共享-互斥锁。这种锁在数据库管理系统中(DBMS)和操作系统内核中大量应用,作为系统程序员,了解它的实现机制是有必要的。这里我们请读者实现读写锁,要求如下:
o 不依赖于特定平台。
o 在任何情况下都不带来额外的性能开销。
记住多想多练不要偷懒,学习知识点不是我们最重要的目标,知识点能帮你解决别人解决过的问题,但对你解决新问题未必有多大好处,真正的程序员不应当只是解决问题方案的贩卖者。不断从思考中学习解决问题的方法,加上灵活应用已经掌握的知识点,你的设计水平才会大大提高,这也是《系统程序员成长计划》努力的目标。
- 系统程序员成长计划-并发(四)(上)
- 系统程序员成长计划-并发(四)(上)
- 系统程序员成长计划-并发(四)(上)
- 系统程序员成长计划-并发(四)(下)
- 系统程序员成长计划-并发(四)(下)
- 系统程序员成长计划-并发(四)(下)
- 系统程序员成长计划-并发(一)(上)
- 系统程序员成长计划-并发(二)(上)
- 系统程序员成长计划-并发(三)(上)
- 系统程序员成长计划-并发(一)(上)
- 系统程序员成长计划-并发(二)(上)
- 系统程序员成长计划-并发(三)(上)
- 系统程序员成长计划-并发(一)(上)
- 系统程序员成长计划-并发(二)(上)
- 系统程序员成长计划-并发(三)(上)
- 系统程序员成长计划-并发(一)(下)
- 系统程序员成长计划-并发(二)(下)
- 系统程序员成长计划-并发(三)(下)
- JavaScript数组的快速克隆(slice()函数)和数组的排序、乱序和搜索(sort()函数)
- Moblin V2的Xfce4桌面环境及中文化
- Google的矢量图形引擎skia开源了.
- pop收邮件
- 程序员的十层楼(4~5层) -- 不为追求,只为创造幸福生活
- 系统程序员成长计划-并发(四)(上)
- 定制操作系统:开始篇——开始了
- 程序员
- XNA系列(1)
- SQL注入 小问题大隐患
- TL-WR541G+ 、无线路由器设置详解、无线路由器设置教程
- pack/unpack 的摸板字符字符 含义
- 学习篇——纸上谈兵2:Linux的XServer
- 课程设计 通讯录源代码