我正在读TM,其中一篇我正在阅读的论文[1]:
实际上,这是两个非阻塞算法,无障碍DSTM和无锁FSTM,在过去十年中重新激活了STM研究。
我的印象是锁意味着阻碍。显然,我错了......
术语“无锁”和“无阻碍”之间有什么区别?
答案 0 :(得分:5)
以下是Herlihy& Sons的定义。 Shavit的The Art Of Multiprocessor Programing。
如果保证,方法等待 每次调用都会完成执行 在有限的步骤中。
一种方法 是无锁,如果它保证 无限经常一些方法调用 完成有限的步骤。
如果是,方法是无阻碍 它执行之后的任何点 隔离,它在有限的时间内完成 步数(如果没有其他线程采取步骤,方法调用将独立执行)。
所有无等待方法都是无锁的,并且所有无锁方法都是无障碍的。