Что означает каждый элемент memory_order?

Я прочитал главу, и мне это не очень понравилось. Мне до сих пор неясно, в чем различия между каждым порядком памяти. Это мое текущее предположение, которое я понял после прочтения гораздо более простогоhttp://en.cppreference.com/w/cpp/atomic/memory_order

The below is wrong so don't try to learn from it

memory_order_relaxed: Does not sync but is not ignored when order is done from another mode in a different atomic var memory_order_consume: Syncs reading this atomic variable however It doesnt sync relaxed vars written before this. However if the thread uses var X when modifying Y (and releases it). Other threads consuming Y will see X released as well? I don't know if this means this thread pushes out changes of x (and obviously y) memory_order_acquire: Syncs reading this atomic variable AND makes sure relaxed vars written before this are synced as well. (does this mean all atomic variables on all threads are synced?) memory_order_release: Pushes the atomic store to other threads (but only if they read the var with consume/acquire) memory_order_acq_rel: For read/write ops. Does an acquire so you don't modify an old value and releases the changes. memory_order_seq_cst: The same thing as acquire release except it forces the updates to be seen in other threads (if a store with relaxed on another thread. I store b with seq_cst. A 3rd thread reading a with relax will see changes along with b and any other atomic variable?).

Я думаю, что понял, но поправьте меня, если я не прав. Я не смог найти ничего, что объясняло бы это на легко читаемом английском языке.

Ответы на вопрос(2)

Ваш ответ на вопрос