2014-09-09 14 views

risposta

19

Questi due esempi sono equivalenti; operator= e operator T sono equivalenti a chiamare rispettivamente store e load, con il valore predefinito per l'argomento memory_order.

Se si è soddisfatti di tale valore predefinito, memory_order_seq_cst, in modo che ogni accesso agisca da recinto di memoria, quindi utilizzare quello che sembra più bello per voi. Se si desidera specificare un valore diverso, sarà necessario utilizzare le funzioni, poiché gli operatori non possono accettare un secondo argomento.

+10

Vale la pena notare che 'memory_order_seq_cst' è il più forte ordine di memoria. Non c'è motivo di specificarne uno diverso, se non per migliorare le prestazioni in situazioni in cui non è necessaria una coerenza sequenziale completa. – Sneftel

+1

Preferisco 'load' /' store' perché indica che la variabile è atomica, migliora la leggibilità del codice! –

Problemi correlati