to myself 的分类学习日志

做自己想做的事
posts - 232, comments - 6, trackbacks - 0, articles - 0

加锁

Posted on 2009-03-05 15:31 kongkongzi 阅读(144) 评论(0)  编辑 收藏 引用 所属分类: c++ programming
关键区域 
      和其他同步对象不同,除非有需要以外,关键区域工作在用户模式下。若一个线程想运行一个封装在关键区域中的代
码,它首先做一个旋转封锁,然后等待特定的时间,它进入内核模式去等待关键区域。实际上,关键区域持有一个旋转计数器和一个信号量,前者用于用户模式的等待,后者用于内核模式的等待(休眠态)。
      在Win32API中,有一个L_SECTION结构体表示关键区域对象。在MFC中,有一个类CCriticalSection。关键区域是这样一段代码,当它被一个线程执行时,必须确保不会被另一个线程中断。

Linux设备驱动之并发控制: 自旋锁与信号量(绝大多数时候作为互斥锁使用)。
原子操作
锁的作用域:在哪定义一把锁?