Половина и полные заборы?
Я читал, чтоFull fences
предотвращает любой вид переупорядочения команд или кэширования вокруг этого забора (через memoryBarrier)
Тогда я читаю оvolatile
который генерирует & # x201C; половину заборов & # x201D; :
The volatile keyword instructs the compiler to generate an acquire-fence on every read from that field, and a release-fence on every write to that field.
acquire-fence
An acquire-fence prevents other reads/writes from being moved before the fence;
release-fence
A release-fence prevents other reads/writes from being moved after the fence.
Может кто-нибудь объяснить мне эти 2 предложения на простом английском языке?
(where is the fence ?)
editПосле некоторых ответов здесь - я сделал рисунок, который может помочь всем - я думаю.