自旋锁spinlock见解
来源:互联网 发布:淘宝联盟提现时间限制 编辑:程序博客网 时间:2024/05/16 01:50
Linux下常见的锁机制
Linux下常见的锁机制主要有:spinlock(自旋锁)、mutex(互斥锁)和semaphore(信号量)等;
Windows下还有CRITICAL_SECTION(临界区),临界区机制的实现只能是单进程里,它的性能较高;
多线程之spinlock(自旋锁)
因为准备要参加一个项目,需要了解tcmalloc的实现机制,无意中看到了使用自旋锁机制,所以临时记录一下。
自旋锁是锁机制中简单易用的一种,它是一种忙等待锁,一般适用于短时间内处理事件等待的轻量级加锁。
下面给出一个实例:
int status;
spinlock_t spinlock;
int init_lock(void) {
spin_lock_init(&spinlock);
}
int add_status(struct inode *inode, struct file *filp) {
spin_lock(&spinlock);
if( OpenCloseStatus ) {
spin_unlock(&spinlock);
return -EBUSY;
}
status++;
spin_unlock(&spinlock);
}
int sub_status(struct inode *inode, struct file *filp) {
spin_lock(&spinlock);
status--;
spin_unlock(&spinlock);
}
Spinlock的一些特点
1. spinlock不会导致线线程上下文切换,即不会导致用户态到内核态的切换;
2. spinlock只能使用在内核态中,即内核代码中;
3. spinlock锁之间的代码尽量简短,并且spinlock不能放在递归的函数中使用。
- 自旋锁spinlock见解
- 自旋锁spinlock
- 自旋锁 SpinLock
- 自旋锁spinlock
- 自旋锁 spinlock 理解
- 自旋锁(spinlock)
- Spinlock编程(自旋锁)
- 自旋锁(spinlock)
- 自旋锁spinlock
- 自旋锁spinlock
- 自旋锁(spinlock)
- spinlock自旋锁
- spinlock自旋锁
- 自旋锁(spinlock)
- 自旋锁spinlock
- Spinlock 自旋锁 备忘
- spinlock自旋锁分析
- 自旋锁spinlock解析
- 生日概率
- 第七节 常用组件 之 Source Qualifier 输入过滤器
- win7+ubuntu 13.04双系统安装方法
- DOM VS BOM
- P53.40(求出10~1000之内能同时被2,3,7整除的数,并输出。)
- 自旋锁spinlock见解
- maven in action(二)maven安装和配置-->myeclipse
- 00_linux下安装SQLite
- printf("%d",5.01)和printf("%f",5)的输出结果
- 完成端口
- C++ 竖式问题
- Cocos2d-x 3.4 之 文本输入之 EditBox
- 1013求偶数和
- Linux下运行Java的jar包方法