文档章节

Linux内核中的原子操作 atomic_t 解析

tsuibin
 tsuibin
发布于 2012/08/02 20:40
字数 86
阅读 576
收藏 1

原型:

typedef struct {

volatile int counter;

} atomic_t;

1 声明

定义并初始化原子变量
atomic_t isopen = ATOMIC_INIT(1);

2 使用
原子变量自减1,并测试是否为0,如果为0,返回true,否则返回false
if( !atomic_dec_and_test(&isopen) ) {
    atomic_inc(&isopen); //加1操作
    return -EBUSY;
}

3 释放
减1操作
atomic_dec(&isopen);

© 著作权归作者所有

tsuibin

tsuibin

粉丝 20
博文 26
码字总数 4993
作品 0
东城
个人站长
私信 提问
漫画 | Linux 并发和竞态问题究竟是什么?

作者 | 写代码的篮球球痴 责编 | 郭芮 学习Linux的时候,肯定会遇到各种和锁相关的知识,有时候自己学好了一点,感觉半桶水的自己已经可以华山论剑了,又突然冒出一个新的知识点,我看到新知...

CSDN资讯
02/25
0
0
linux内核原子操作

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

So_care_about_y
2017/08/08
0
0
Linux驱动(五)linux设备驱动中的并发控制

在应用层学习时,我们学习过多个进程处理共享资源的情况。实际上在驱动中也有类似的情况,并且相对于应用层,并发的情况会更多。 并发(concurrency)指的是多个执行单元同时、并行被执行,而...

u012142460
2018/01/09
0
0
Linux内核同步原子操作

避免对同一数据的并发访问(通常由中断、对称多处理器、内核抢占等引起)称为同步。 ——题记 内核源码:linux-2.6.38.8.tar.bz2 目标平台:ARM体系结构 原子操作确保对同一数据的“读取-修改...

有些服务器
2015/10/04
72
0
全志A33 lichee Linux内核原子操作(附实测代码)

全志A33 lichee Linux内核原子操作(附实测代码) 开发平台 淘宝店铺: https://sinlinx.taobao.com/ 嵌入式linux 开发板交流 641395230 原子操作是指不会被线程调度机制打断的操作;这种操作一...

xiaobai12568
02/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

FPGA 设备 USB Platform Cable USB

lsusbFuture Technology Devices International, Ltd FT232H Single HS USB-UART/FIFO IC

MtrS
今天
4
0
lua web快速开发指南(6) - Cache、DB介绍

"数据库"与"缓存"的基本概念 数据库与缓存是服务端开发人员的必学知识点. 数据库 "数据库"是一种信息记录、存取的虚拟标记地点的集合统称. 比如现实生活中, 我们经常会用到文件柜、书桌等等数...

水果糖的小铺子
今天
7
0
Oracle分页查询语句的写法

Oracle分页查询语句的写法 Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,Oracle分页查询语句基本上可以按本文给出的格式来进行套用。   Oracle分...

康师傅
昨天
5
0
java并发图谱

1527
昨天
2
0
Mybatis之拦截器Interceptor

使用mybatis时用PageHelper进行分页,用到了PageInterceptor,借此了解下mybatis的interceptor。Mybatis的版本是3.4.6,MybatisHelper的版本是5.1.3。 1、PageInterceptor 先上一段代码,如下...

克虏伯
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部