Я читаю книгу Java Concurrency in Practice. В главе 15 речь идет о неблокирующих алгоритмах и методе сравнения и замены (CAS).Java Concurrency: CAS vs Locking
Написано, что CAS выполняет намного лучше, чем методы блокировки. Я хочу спросить людей, которые уже работали с обоими этими понятиями, и хотели бы услышать, когда вы предпочитаете, какая из этих концепций? Это действительно намного быстрее?
Для меня, использование замков намного понятнее и легче понять и, возможно, даже лучше поддерживать (пожалуйста, поправьте меня, если я ошибаюсь). Должны ли мы действительно сосредоточиться на создании нашего параллельного кода, связанного с CAS, чем блокировок, чтобы повысить производительность или повысить устойчивость?
Я знаю, что, возможно, не строгое правило, когда использовать что. Но я просто хотел бы услышать некоторые мнения, опыт новой концепции CAS.
Согласен, акцентируя внимание на * счете вычисления нового значения *. Часто он настолько велик, что стратегия блокировки не блокируется на основе блокировки. –