侧边栏壁纸
博主头像
银河驿站博主等级

行动起来,活在当下

  • 累计撰写 85 篇文章
  • 累计创建 17 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

自旋锁和互斥锁

Administrator
2019-07-26 / 0 评论 / 0 点赞 / 1845 阅读 / 665 字

自旋锁和互斥锁

  • 自旋锁和互斥锁一样,都是为了解决对某种资源的互斥访问。

  • 自旋锁和互斥锁的区别: 自旋锁:如果资源已经被占用,调用线程不会进入休眠(一直处于激活状态),而是在循环等待,直到获取到被占用资源。 互斥锁:如果资源已经被占用,调用线程进入休眠状态,获取到锁的时候需要从内核态恢复,需要线程上下文切换。

  • 自旋锁不会使线程状态发生切换,一直处于用户态,即线程一直都是active的;不会使线程进入阻塞状态,减少了不必要的上下文切换,执行速度快 非自旋锁在获取不到锁的时候会进入阻塞状态,从而进入内核态,当获取到锁的时候需要从内核态恢复,需要线程上下文切换。 (线程被阻塞后便进入内核(Linux)调度状态,这个会导致系统在用户态与内核态之间来回切换,严重影响锁的性能)

  • 可重入自旋锁和不可重入自旋锁

0

评论区