Linux中最低级的锁原语是什么?我知道futex_wait
和futex_wake
,但是futexes除了锁定还可以用于信号。最低级别的锁原语在glibc库中怎么找到?另外,条件变量也是基于futexes吗?
不存在所谓的“最低”,但是针对不同场景和目的有不同种类的锁,而“信号”并不是区分不同类型锁的正确标准。
atomic_flag
来实现。futex
作为等待部分的工作马来实现的。自旋锁最适合用于您知道关键阶段仅涉及少量汇编指令且调度程序或信号中断关键阶段的可能性很小的情况下。这种情况适用于比许多人想象的更多的上下文环境。因此,atomic_flag
是C语言中一个重要的新功能。
其他锁最适合用于主动等待会占用大量系统资源的情况。
LOCK
前缀,它使您能够原子地执行某些操作。 - Daniel Kamil Kozarx86-64
,所以我认为这是暗示。 - Daniel Kamil Kozar