无锁和无阻碍有什么区别?

时间:2010-12-13 19:07:22

标签: concurrency terminology lock-free

我正在读TM,其中一篇我正在阅读的论文[1]:

  

实际上,这是两个非阻塞算法,无障碍DSTM和无锁FSTM,在过去十年中重新激活了STM研究。

我的印象是锁意味着阻碍。显然,我错了......

术语“无锁”和“无阻碍”之间有什么区别?

1 个答案:

答案 0 :(得分:5)

以下是Herlihy& Sons的定义。 Shavit的The Art Of Multiprocessor Programing

  

如果保证,方法等待   每次调用都会完成执行   在有限的步骤中。

     

一种方法   是无锁,如果它保证   无限经常一些方法调用   完成有限的步骤。

     

如果是,方法是无阻碍   它执行之后的任何点   隔离,它在有限的时间内完成   步数(如果没有其他线程采取步骤,方法调用将独立执行)。

所有无等待方法都是无锁的,并且所有无锁方法都是无障碍的。