В последнее время я много читаю, и теперь я очень озадачен тем, как работают транзакции и блокировки и как они связаны друг с другом.
При работе с SQLite представьте следующий поток:
- начать транзакцию SQLite
- запустить оператор выбора для соединения SQLite, чтобы получить значения
- , если условие для возвращаемых значений выполнено, перейдите к шагу # 4, в противном случае перейдите кшаг # 5
- выполнить обновление
- зафиксировать транзакцию SQLite
Если два потока выполняют один и тот же код, есть ли вероятность, что в одном из потоков может получиться то, чтоназывается «грязное чтение», означающее, что между шагом № 3 и шагом № 4 другой поток может запустить обновление (шаг № 4)?