Linux Kernel 学习笔记7:同步与互斥之自旋锁
来源:互联网 发布:数据库resource权限 编辑:程序博客网 时间:2024/05/18 19:42
(本章基于:Linux-4.4.0-37)
自旋锁是一个互斥设备,具有“锁定”和“解锁”两个状态。在进入临界区代码之前锁定,出临界区后解锁。当一个锁被锁定,其他进程尝试获取该锁时则进入“忙等”状态,即反复检查该锁的状态直到这个锁可用为止。因此在使用自旋锁时,代码临界区应该尽量“短小”,避免可能引起睡眠的操作,如kmalloc()。
相关头文件:linux/spinlock.h
自旋锁变量类型:spinlock_t
定义一个自旋锁变量,并初始化为解锁状态
DEFINE_SPINLOCK(x)
初始化一个自旋锁
spin_lock_init(_lock)
加锁操作
static inline void spin_lock(spinlock_t *lock);
解锁操作
static inline void spin_unlock(spinlock_t *lock);
例:
spin.c
#include <linux/spinlock.h>static int shareData = 0; //共享数据DEFINE_SPINLOCK(my_lock); //声明my_lockspin_lock_init(&my_lock); //初始化my_lockspin_lock(&my_lock);//加锁shareData = 10;spin_unlock(&my_lock); //解锁
0 0
- Linux Kernel 学习笔记7:同步与互斥之自旋锁
- linux互斥与同步 之 自旋锁读写锁
- 学习笔记 --- LINUX的同步互斥机制 --- 自旋锁与信号量的区别
- Linux Kernel 学习笔记8:同步与互斥之信号量
- linux互斥与同步 之 互斥锁
- Linux之线程:同步与互斥
- linux内核学习(15)内核编程基本功之内核同步与自旋锁spinlock_t
- linux内核学习(15)内核编程基本功之内核同步与自旋锁spinlock_t
- linux内核学习(15)内核编程基本功之内核同步与自旋锁spinlock_t
- linux互斥与同步 之 顺序锁
- Linux--线程同步与互斥之读写锁
- Linux 内核同步之自旋锁与信号量的异同
- 学习笔记—多线程同步与互斥
- 操作系统学习笔记——进程互斥与同步
- linux互斥与同步 之 信号量 读写信号量
- linux操作系统之互斥与同步区别
- Linux 编程之【线程】同步与互斥
- Linux互斥与同步之原子操作
- spring10
- 端游、手游服务端常用的架构是什么样的?
- 513. Find Bottom Left Tree Value
- Android中的设计模式
- MAC OS查看端口占用情况及杀死进程
- Linux Kernel 学习笔记7:同步与互斥之自旋锁
- Spark源码学习笔记1-SparkContext
- Android 网络调试 tcpip 开启方法以及10061错误解决方法
- 网络游戏服务端的多线程模型
- python 命令行:help(),'more'不是内部或外部命令,也不是可运行的程序或批处理文件
- rownum用法
- 我的JAVA学习之路
- 打造高效的 windows 操作系统
- Mysql学习笔记十一——建表及建表综合案例练习