// Thread 1
// do A
x.store(1, std::memory_order_release); // operation1
// Thread 2
// do B
x.store(2, std::memory_order_release); // operation2
// Thread 3
x.load(std::memory_order_acquire); // operation3
Я понял, что если thread3 читает значение, записанное thread1, операции освобождения и получения выполняются синхронизированы с , а эффект A
виден для thread3.
Но что, если дело в том, что:
- порядок модификации для
x
равен 1, 2 - thread3 читает значение, записанное thread2, таким образом, 2 происходит раньше 3.
Существует ли случаемо-до взаимосвязи между 1 и 3?
или, по сути, вносит ли порядок изменения в происшествие-до отношения?