Есть ли аналог для фиксации транзакции в многопоточности? - PullRequest
0 голосов
/ 12 июня 2018

У меня часто складывается впечатление, что можно провести тесную аналогию между транзакциями и потоками.Действительно:

  1. Транзакция - это последовательность действий.Работающий поток - это последовательность операторов.
  2. Транзакции чтения / изменения строк и таблиц (в терминах реляционных баз данных).Потоки читают / изменяют класс и статические поля.
  3. Транзакции используют блокировки для обеспечения согласованности данных. Так что делают потоки.

Если бы аналогия действительно имела место, каждому было бы намного легче понять транзакции, используя свои знания о многопоточности (и наоборот).

Однако есть проблема: в мире многопоточности, похоже, нет аналогии для фиксации транзакции (или откат ).

Означает ли эточто аналогия на самом деле просто иллюзия и что лучше не использовать знания о многопоточности при изучении транзакций?Или есть еще аналогия коммита / отката?

1 Ответ

0 голосов
/ 12 июня 2018

В Java можно заставить поток ждать, пока другой поток не умрет (см. Thread.join ).Похоже, что действие транзакции коммит / откат аналогично смерти потока.

...