I negozi sono operazioni di rilascio e i carichi sono operazioni di acquisizione per entrambi. So che lo memory_order_seq_cst
intende imporre un ulteriore ordinamento totale per tutte le operazioni, ma non riesco a creare un esempio in cui non è il caso se tutti gli memory_order_seq_cst
vengono sostituiti da memory_order_acq_rel
.In che modo memory_order_seq_cst e memory_order_acq_rel differiscono?
Mi manca qualcosa, o la differenza è solo un effetto di documentazione, cioè si dovrebbe usare memory_order_seq_cst
se si intende non giocare con un modello più rilassato e usare memory_order_acq_rel
quando si vincola il modello rilassato?
Non capisco perché 'x = vero; y = vero; c(); d()' non è possibile? Questo dovrebbe far sì che sia 0. Inoltre non so perché ottengo 2 molto come risultato. –
@ acidzombie24, anche in questo caso, 'z' sarà 2. – MSN
Ho incasinato, ho letto male il codice. Questo ha perfettamente senso ora –