当前位置:  技术问答>自旋锁和读写自旋锁、信号量和读写信号量分别有什么区别? iis7站长之家

自旋锁的问题

    来源: 互联网  发布时间:2015-12-15

    本文导语:  自旋锁最多只能被一个可执行线程持有。如果一个执行线程试图获得一个被争用(已经被持有)的自旋锁,那么该线程就会一直进行忙循环——旋转——等待锁重新可用 那么它会一直占据CPU,那么靠谁来将锁释放呢...

自旋锁最多只能被一个可执行线程持有。如果一个执行线程试图获得一个被争用(已经被持有)的自旋锁,那么该线程就会一直进行忙循环——旋转——等待锁重新可用

那么它会一直占据CPU,那么靠谁来将锁释放呢?

其他CPU,还是硬件中断

|
自旋锁spinlock是用来在多处理器环境中工作的一种特殊的锁。如果内核的控制路径发现spinlock没有上锁,就会获取锁并继续执行自己。相反,如果内核控制路径发现锁由运行在另一个CPU上的内核控制路径上锁,就反复执行一条紧凑的循环指令,直到锁被释放。

请参考Understanding the Linux Kernel的第五章。

|
xmmx123(myfish) ( ) 信誉:100    Blog  2006-09-20 00:27:00  得分: 0  
 
 
   你是说 自旋的线程 在时间片耗尽后让出CPU?

自旋锁 的意义不是在于 不想耗费进程切换的时间吗?

线程自旋过程中,一直占据CPU,除非其他CPU将锁释放吧,可不可以说自旋锁只针对多CPU呢? 
 
===========================================
对,自旋锁仅仅对MP有效果,Linux中UP的话展开spin_lock就会是空操作。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 自旋锁和读写自旋锁、信号量和读写信号量分别有什么区别?
  • 中断处理函数中使用自旋锁的疑问
  • 自旋锁使用
  • 内核同步中 自旋锁的用法??
  • spin_lock为什么不自旋?
  • linux中的自旋锁相关的宏的源代码的疑问
  • 在获得自旋锁后为什么不能够进行可能引起休眠的操作?
  • 书上说,中断用自旋锁,进程,用信号量,但是,为什么中断不能用信号量?
  • 关于有自旋锁进程不能被抢占和调度
  • 有关sql server中的自旋锁
  • 嵌入式2.6.8对自旋锁分配内存失败
  • 内核自旋锁spin_lock,获取已锁住的锁时Linux死机
  • netfilter中能否使用自旋锁数组啊?
  • Java锁之自旋锁详解


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3