自旋锁spinlock
来源:互联网 发布:java soa是什么 编辑:程序博客网 时间:2024/06/05 02:37
1、自旋锁spinlock
自旋锁广泛应用于多处理器多线程场景中,线程通过busy-wait-loop的方式获取锁,在任一时刻,只有一个线程可以获得锁,其他线程需要忙等待直到获得锁。通常情况下,要求spinlock的临界区尽量简短,且临界区中不能有显示或隐式的系统调用。
2、与mutex的对比
spinlock不会导致线程的状态发生切换(用户态->内核态);mutex获取不到锁时会选择sleep。
mutex获取锁分为两个阶段,第一阶段在用户态采用spinlock锁总线的方式获取一次锁,如果成功获得锁则立即返回;否则进入第二阶段,调用系统的futex锁sleep,当锁可用后被唤醒,继续竞争锁。
spinlock优缺点:
spinlock没有昂贵的系统调用,执行速度快;但是自旋锁一直占用CPU,且在执行过程中会锁bus总线,锁总线时其他处理器无法使用总线。
mutex优缺点:
mutex不会忙等,得不到锁时会sleep;但是sleep时会陷入内核态。
点击打开链接
0 0
- 自旋锁spinlock
- 自旋锁 SpinLock
- 自旋锁spinlock
- 自旋锁 spinlock 理解
- 自旋锁(spinlock)
- Spinlock编程(自旋锁)
- 自旋锁(spinlock)
- 自旋锁spinlock
- 自旋锁spinlock
- 自旋锁(spinlock)
- spinlock自旋锁
- spinlock自旋锁
- 自旋锁(spinlock)
- 自旋锁spinlock
- Spinlock 自旋锁 备忘
- spinlock自旋锁分析
- 自旋锁spinlock解析
- 自旋锁(spinlock)
- MT6589][AAL]巧用dumpsys处理AAL工作异常问题
- 移动H5前端性能优化指南
- Android硬编实战之采集编码解码
- 管道和FIFO
- angularjs自定义过滤器
- 自旋锁spinlock
- python 转码报错decoding Unicode is not supported
- 高仿小米日历,美柚日历,支持月周切换,支持scrollview、listview等拖动切换
- NandFlash控制器参数TACLS、TWRPH0和TWRPH1的确定
- MFC绘图常用
- iOS ARC环境下dealloc的使用
- 如何优化SQL语句
- Linux htop工具使用详解
- usaco ★Longest Prefix 最长前缀