Это точка линеаризации? - PullRequest
       1

Это точка линеаризации?

0 голосов
/ 07 февраля 2019

Скажем, у меня есть следующий метод в реализации стека без блокировок, поточно-ориентированный:

public boolean push(T value) {
    Node node = new Node(value);
    do {
        node.next = head.get();
    } while (!head.compareAndSet(node.next, node)); // Linearization Point
    operations.incrementAndGet();
    return true;
}

Считается ли отмеченная линия точкой линеаризации?

У меня сложилось впечатление, что линеаризацияточка - это единичная атомная точка, в которой состояние параллельного объекта было видоизменено, чтобы отразить предполагаемые эффекты конкретного вызова метода.Если это так, я не согласен с тем, действительно ли вызов compareAndSet() является точкой линеаризации.Казалось бы, присутствие операции приращения в operations вводит вторую атомную точку, в которой состояние параллельного объекта должно изменяться - что противоречит моему нынешнему пониманию того, что значит быть линеаризуемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...