Я читаю книгу " Паралельно Java" на практиці . У главі 15 вони говорять про алгоритми блокування та метод порівняння та обміну (CAS).
Написано, що CAS працює набагато краще, ніж методи блокування. Я хочу запитати людей, які вже працювали з обома цими поняттями і хотіли б почути, коли ви віддаєте перевагу якому з цих понять? Невже це набагато швидше?
Для мене використання замків набагато зрозуміліше та легше зрозуміти та, можливо, навіть краще підтримувати (будь ласка, виправте мене, якщо я помиляюся) . Чи справді нам слід зосередитись на створенні нашого одночасного коду, пов'язаного з CAS, ніж блокування, щоб отримати кращий приріст продуктивності, чи стабільність важливіша?
Я знаю, що, можливо, не існує суворого правила, коли що використовувати. Але я просто хотів би почути деякі думки та досвід щодо нової концепції CAS.