在Intel线程构建模块中提到了可扩展的互斥量、不可扩展的互斥量和自旋锁。
请达人给说说这3个知识。
谷歌和百度里都没有找到相关概念。

解决方案 »

  1.   

    自旋锁可以用于驱动程序,初始化时处于解锁状态,可以被程序获取,获取后的自旋锁处于锁住状态,不能被再次获取。锁住的自旋锁必须被释放以后才能再次被获取。如果自旋锁已经被锁住,这时有程序申请这个锁,程序则处于“自旋”状态,就是不停地询句是否可以获取自旋锁。因此叫“自旋锁”。自旋锁不同于线程中的等待事件,在线程中如果等待某个事件,操作系统会使这个线程进入休眠状态,CPU会运行其他线程。而自旋锁不则,它不会切换到别的线程,而是一直让这个线程自旋,因此对自旋锁占用时间不宜过长。在单CPU中,获取自旋锁只是将当前IRQL(中断请求级)从PASSIVE_LEVEL级别(最低级0)提升到DISPATCH_LEVEL(软件中断的最高级别2)级别。但是在多CPU中实现方法会复杂得多。驱动程序必须在低于或等于DISPATCH_LEVEL的IRQL级别中使用自旋锁。
      

  2.   


    windows多线程设计里有类似的概念的吧
      

  3.   

    http://kczx.whu.edu.cn/Able.Acc2.Web/Template/View.aspx?courseType=0&courseId=27617&topMenuId=-1&menuType=5&action=view&type=&name=
    这里是武汉大学Intel多核处理的课程和相关资料,希望可以帮助到你