用原子读/写内存实现锁的好方法是什么? (不是 RMW!)

问题描述 投票:0回答:0

众所周知,使用原子读/写内存(您可以原子地读或写)不可能以无等待的方式解决 >= 2 个进程的共识。我意识到读取修改写入内存是可能的。

但是,如果我们不关心等待自由并且仍然想要达成共识,会发生什么?锁显然违反了等待自由(因为锁定进程可能会崩溃),但可以用来解决共识问题:所有进程都试图获得锁并且第一个进程获胜(简单来说)。

我想知道最好的方法(或者至少是一个好方法)是用原子读/写内存实现锁(不关心无等待)。显然,在 rmw-memory 可用之前,这在过去已经完成了,我想知道当时人们做了什么(分别地,事后看来,这样做的方法是什么?)

忙碌等待是最好的方式吗?例如,使用 Dekker 算法或它的更高级版本?谢谢!

multithreading concurrency atomic consensus
© www.soinside.com 2019 - 2024. All rights reserved.