互斥体、原子操作、自旋锁、信号量
来源:互联网 发布:redtube最新软件 编辑:程序博客网 时间:2024/03/29 16:41
一、互斥体
struct mutex my_mutex;//定义mutex
mutex_init(&my_mutex);//初始化mutex
mutex_lock(&my_mutex);//获取mutex
... //临界资源
mutex_unlock(&my_mutex);//释放mutex
二、原子操作
1、定义
原子操作指的是在执行过程中不会被中断的操作。
2、整型原子操作
1)设置原子变量的值
void atomic_set(atomic_t *v, int i);//设置原子变量的值为i
atomic_t v = ATOMIC_INIT(0);//定义原子变量v并初始化为0
2)获取原子变量的值
atomic_read(atomic_t *v);
3)原子变量加/减,原子变量自增/自减
void atomic_add(int i, atomic_t *v);
void atomic_sub(int i, atomic_t *v);
void atomic_inc(atomic_t *v);
void atomic_dec(atomic_t *v);
4)操作并测试
int atomic_inc_and_test(atomic_t *v);
int atomic_dec_and_test(atomic_t *v);
int atomic_sub_and_test(int i, atomic_t *v);
上述操作对原子变量执行自增、自减和减操作后测试是否为0,为0返回true,否则返回false。
3、位原子操作
。。。。。。//详见《Linux设备驱动开发详解》P138
三、自旋锁
spinlock_t lock;
spin_lock_init(&lock);
spin_lock(&lock);
.../临界区
spin_unlock(&lock);
四、信号量
- 互斥体、原子操作、自旋锁、信号量
- 原子操作 信号量 自旋锁 互斥锁
- 原子操作 信号量 自旋锁 互斥锁
- 原子操作,自旋锁,互斥锁,信号量学习
- 信号量、互斥锁、自旋锁、原子操作
- 原子操作、信号量、读写信号量和自旋锁
- 原子操作、信号量、读写信号量和自旋锁
- 原子、信号量、互斥锁、自旋锁
- Linux设备驱动中的并发控制,原子打操作、自旋锁、信号量、完成量、互斥体
- 原子操作,自旋锁
- 原子操作、信号量、读写信号量和自旋锁的区别与联系
- 自旋锁、内核信号量、原子变量
- [Linux]互斥机制(中断屏蔽、原子操作、自旋锁、信号量)
- Driver:内核的竞态和并发:中断屏蔽、原子操作、自旋锁、信号量
- Linux下原子操作(信号量 自旋锁)的实现原理和底层代码分析
- 信号量,互斥体,自旋锁
- Linux内核原子函数,自旋锁,信号量了解(转)
- Linux内核原子函数,自旋锁,信号量了解
- iOS开发笔记--多个Section的TableView
- svn 上传 过滤
- Python学习——python打印汉字
- kernel crash analysis
- java awt初学
- 互斥体、原子操作、自旋锁、信号量
- 构建高可扩Web架构和分布式系统实战
- SELinux基础
- 到底怎样解决软件包依赖?
- jQuery验证控件jquery.validate.js使用说明+中文API
- Android Textview加中线
- mit 6.002 circuits & electronics video note
- 安卓-----打开新的Activity,并传递若干个参数给它
- WEB前端开发必备的辅助软件工具