其他分享
首页 > 其他分享> > 同步原语

同步原语

作者:互联网

目录

每CPU变量

每CPU变量主要是数据结构的数组。系统的每个CPU对应数组的一个元素

原子操作

保证指令以原子方式执行——执行过程不被打断

优化和内存屏障

优化屏障

保证编译程序不会混淆放在原语操作之前的汇编语言指令和放在原语操作之后的汇编语言指令

内存屏障

保证在原语之后的操作开始之前,原语之前的操作已经完成

自旋锁

如果有一个执行线程试图获得一个被已经持有的自旋锁,那么该线程会一直进行忙循环(在CPU上运行)。要是锁未被争用,请求所得执行线程就能立刻获得锁

读写自旋锁

把锁的用途明确分为读取和写入两个场景

顺序锁

和读写自旋锁类似,但为写者赋予较高优先级

读——拷贝——更新(RCU)

信号量

信号量是一种睡眠锁。当某个进程试图获得已经被占用的信号量,信号量会将其推进一个等待队列,然后让其睡眠。当持有的信号量被释放后,处于等待队列的进程就会被唤醒

读写信号量

读写信号量是互斥信号量,和读写自旋锁一样,只对写者互斥,不对读者

标签:同步,写者,信号量,原语,指令,内存,自旋,CPU
来源: https://www.cnblogs.com/wasi-991017/p/14395980.html