linux原子操作

原创 2012年03月27日 17:34:28

原子操作指的是在执行过程中不会被别的代码路径所中断的操作,下面列出原子操作相关的函数

1.void atomic_set(atomic_t  *v,int  i); //设置原子变量的值为i

2.atomic_t  v = ATOMIC_INIT(0); //定义原子变量V并初始化为0

3.atomic_read(atomic_t  *v); //返回原子变量的值

4.void  atomic_add(int  i,atomic_t  *v); //原子变量增加i

5.void  atomic_sub(int  i,atomic_t  *v); //原子变量减少i

6.void  atomic_inc(atomic_t  *v); //原子变量增加1

7.void  atomic_idec(atomic_t  *v); //原子变量减少1

8.int  atomic_inc_and_test(atomic_t  *v); //原子变量执行自增后测试其是否为0,0则返回true

9.int  atomic_dec_and_test(atomic_t  *v); //原子变量执行自减后测试其是否为0,0则返回true

10.int  atomic_sub_and_test(int  i,atomic_t  *v); //原子变量执行减i后测试其是否为0,0则返回true

11.int  atomic_add_return(int  i,atomic_t  *v); //原子变量执行加i,并返回新值

12.int  atomic_sub_return(int  i,atomic_t  *v); //原子变量执行减i,并返回新值

13.int  atomic_inc_return(atomic_t  *v); //原子变量执行自增,并返回新值

14.int  atomic_dec_return(atomic_t  *v); //原子变量执行自减,并返回新值

 

15.void  set_bit(nr,void  *addr); //设置addr地址的第nr位(写1)

16.void  clear_bit(nr,void  *addr); //清除addr地址的第nr位(写0)

17.void  change_bit(nr,void  *addr); //对addr地址的第nr位进行反置

18.test_bit(nr,void  *addr); //返回addr地址的第nr位

19.int  test_and_set_bit(nr,void  *addr);  //18+15

20.int  test_and_clear_bit(nr,void  *addr);  //18+16

21.int  test_and_change_bit(nr,void  *addr);  //18+17

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Linux 原子操作实现

Futex

Linux 原子操作

所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。    原子操作需...

Linux 设备驱动 ====> 并发控制 --- 原子操作

原子操作 原子的操作指的就是在执行过程中不会被别的代码所中断的操作。 在Linux中原子操作的方法有很多,有整型原子和位原子,他们在任何情况下操作都是原子的,这些原子操作的实现都是依赖CPU来实现...

Unix(Linux)中的原子操作

下面的文章是通过学习《Unix环境高级编程》总结的,内容摘抄或改自原书。 提到原子操作,首先想到的是这个操作是不可分割,不可中断的。在多进程(线程)过程中经常会出现写文件冲突这种头疼的情况。 ...

【转】Linux 原子操作

http://www.cnblogs.com/lvbeans/archive/2010/11/16/1879055.html Linux 原子操作 所谓原子操作,就...

linux内核部件分析(二)——原子性操作atomic_t

在任何处理器平台下,都会有一些原子性操作,供操作系统使用,我们这里只讲x86下面的。在单处理器情况下,每条指令的执行都是原子性的,但在多处理器情况下,只有那些单独的读操作或写操作才是原子性的。为了弥补...

Linux内核的原子操作

1、基本概念原子操作可以保证指令以原子的方式执行,执行过程不被打断。它通过把读取和修改变量的行为包含在一个单步中执行,从而防止了竞争的发生,保证操作结果总是一致的。例如:int i=9; 线程1:i+...

Linux内核部件分析<2> 原子性操作atomic_t

在任何处理器平台下,都会有一些原子性操作,供操作系统使用,我们这里只讲x86下面的。在单处理器情况下,每条指令的执行都是原子性的,但在多处理器情况下,只有那些单独的读操作或写操作才是原子性的。为了弥补...

linux用户空间下的原子操作

Atomic Operations “Where did atomic.h go?!?” ..was my surprised reaction when I compiled one of ...

Linux 设备驱动 ====> 并发控制 --- 原子操作

原子操作 原子的操作指的就是在执行过程中不会被别的代码所中断的操作。 在Linux中原子操作的方法有很多,有整型原子和位原子,他们在任何情况下操作都是原子的,这些原子操作的实现都是依赖CP...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)