1. Race condition (состояние гонки). В этом случае правильности исчисления зависит от случайного стечения обстоятельств в последовательности выполнения частей кода потока.
Это понятие связано с data race и часто между ними ставят равно, но это частный случай -- в ситуации когда поле пишется и читается разными потоками, при этом каждый считает, что только у него есть доступ к этому полю и никак не ожидает, что оно может измениться извне.
Операции с полями, которые подлежат влиянию из разных потоков, типа check-then-act и read-modify-write всегда должны быть атомарными. Пример первого, когда у нас поле определенного значения мы должны выполнить соответствующие операции, пока мы проверили и начали что-то выполнять оно поменялось, а мы все еще выполняем. Второй вид -это инкримент, пока мы получили значение изменили его, оно уже изменилось, а мы записали результат основанный на старом значении.
Это понятие связано с data race и часто между ними ставят равно, но это частный случай -- в ситуации когда поле пишется и читается разными потоками, при этом каждый считает, что только у него есть доступ к этому полю и никак не ожидает, что оно может измениться извне.
Операции с полями, которые подлежат влиянию из разных потоков, типа check-then-act и read-modify-write всегда должны быть атомарными. Пример первого, когда у нас поле определенного значения мы должны выполнить соответствующие операции, пока мы проверили и начали что-то выполнять оно поменялось, а мы все еще выполняем. Второй вид -это инкримент, пока мы получили значение изменили его, оно уже изменилось, а мы записали результат основанный на старом значении.
Комментариев нет:
Отправить комментарий