Половина и полные заборы?

Я читал, что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

После некоторых ответов здесь - я сделал рисунок, который может помочь всем - я думаю.

http://i.stack.imgur.com/A5F7P.jpg enter image description here

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

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