В чем разница между без блокировки и без препятствий? - PullRequest
10 голосов
/ 13 декабря 2010

Я читаю на ТМ, и одна из статей, которые я читаю, говорит [ 1 ]:

Действительно, это были два неблокирующих алгоритма, препятствие-бесплатные DSTM и FSTM без блокировок, которые активизировали исследования STM в последнее десятилетие.

У меня сложилось впечатление, что блокировка подразумевает обструкцию.Видимо, я ошибся ...

В чем разница между терминами " без блокировки " и " без препятствий "?

1 Ответ

5 голосов
/ 15 декабря 2010

Вот определения из Herlihy & Shavit's Искусство многопроцессорного программирования .

Метод без ожидания , если он гарантирует, что каждый вызовзаканчивает свое выполнение за конечное число шагов.

Метод без блокировки , если он гарантирует, что бесконечно часто вызов метода завершается за конечное число шагов.

Метод без препятствий если из любой точки, после которой он выполняется изолированно, он завершается за конечное число шагов (вызов метода выполняется изолированно, если другие потоки не предпринимают шаги).

Все без ожиданияметоды не имеют блокировок, а все методы без блокировок не имеют препятствий.

...