Атомные операции и СТМ очень разные звери. В частности, атомарные операции являются гораздо более низкоуровневыми конструкциями - на самом деле атомарные операции различного рода обычно используются для реализации STM. В основном:
- Атомная операция позволяет вам выполнить безопасное для параллелизма обновление одного объекта . Это просто и быстро, обычно это всего лишь одна инструкция на современном оборудовании.
- STM позволяет выполнять безопасное параллелизмное обновление нескольких объектов . Это сложно.
Поэтому в системах STM необходимо добавить дополнительные накладные расходы на ведение бухгалтерского учета, чтобы управлять сложностью обновления транзакций - так что если вам нужно обновить только один объект, атомарная операция почти всегда будет быстрее.
Кроме того, вы должны знать, что нет единого мнения о лучшем способе проектирования систем STM - это активная тема исследования, и в этом есть много компромиссов. Поэтому то, что хорошо работает в одной системе STM, может не работать хорошо в другой системе STM и т. Д.
Например: моя любимая система STM на данный момент - Clojure - она особенно привлекательна, потому что она поддерживает управление несколькими параллельными версиями и никогда не мешает читателям - что дает значительное преимущество в производительности во многих распространенных сценариях. 1023 *