У меня часто складывается впечатление, что можно провести тесную аналогию между транзакциями и потоками.Действительно:
- Транзакция - это последовательность действий.Работающий поток - это последовательность операторов.
- Транзакции чтения / изменения строк и таблиц (в терминах реляционных баз данных).Потоки читают / изменяют класс и статические поля.
- Транзакции используют блокировки для обеспечения согласованности данных. Так что делают потоки.
Если бы аналогия действительно имела место, каждому было бы намного легче понять транзакции, используя свои знания о многопоточности (и наоборот).
Однако есть проблема: в мире многопоточности, похоже, нет аналогии для фиксации транзакции (или откат ).
Означает ли эточто аналогия на самом деле просто иллюзия и что лучше не использовать знания о многопоточности при изучении транзакций?Или есть еще аналогия коммита / отката?