STM может быть построен поверх множества различных примитивов синхронизации, но CAS часто используется, потому что это самый простой, самый легкий вариант, который не накладывает слишком много ненужных семантических ограничений.
Но да, просто использование операции CAS будет быстрее, чем использование чего-то, что, среди прочего выполняет операцию CAS.
Но они служат различным целям.CAS позволяет вам атомарно обновлять несколько select типов данных, STM обычно может использоваться для произвольных типов.STM дает вам атомарность в гораздо большей области транзакции (если ваша транзакция изменяет 4 разные переменные, все 4 фиксируются как одна и та же атомарная операция. Один CAS будет только атомарно обновлять один объект), и он даетгарантии изоляции и согласованности, которых не существует в CAS.
В конечном счете, вы не можете сравнить их.Это как сравнивать колесо с автомобилем.Да, колесо меньше и легче, но это потому, что оно не обладает той же функциональностью, что и автомобиль.