MCS锁——可伸缩的自旋锁
在编写并发同步程序的时候,如果临界区非常小,比如说只有几条或几十条指令,那么我们可以选择自旋锁(spinlock)。使用普通的互斥锁会涉及到操作系统的调度,因此小临界区一般首选自旋锁。自旋锁的工作方式 ...
在编写并发同步程序的时候,如果临界区非常小,比如说只有几条或几十条指令,那么我们可以选择自旋锁(spinlock)。使用普通的互斥锁会涉及到操作系统的调度,因此小临界区一般首选自旋锁。自旋锁的工作方式 ...
本文用较为轻松的方式介绍了几个经典的互斥算法: Dekker 算法、Dijkstra 提出的算法、Peterson 算法和面包店算法,并简单地给出了每一个算法的正确性证明和相关的讨论。本文探寻分布式计 ...
Erlang运行时提供的原子操作API 尽管Erlang给开发人员提供的语义是基于消息传递式的同步,对于应用开发者来说,使用这种语义可以避免使用锁;但是在Erlang运行时(ERTS)中,为了充分利 ...