Я думаю, что это уже гарантировано API.
http://download.oracle.com/javase/6/docs/api/java/util/concurrent/CyclicBarrier.html
Эффекты согласованности памяти: действия в потоке перед вызовом await () случай-до действия, являющиеся частью действия барьера, которые, в свою очередь, выполняются до действий после успешного возврата из соответствующего await () в другие потоки.
http://download.oracle.com/javase/6/docs/api/java/util/concurrent/package-summary.html#MemoryVisibility
Результаты записи одним потоком гарантированно будут видны для чтения другим потоком, только если операция записи происходит до чтенияоперация.... Действия перед вызовом CyclicBarrier.await действия, предшествующие действия, выполняемые действием барьера, и действия, выполняемые действиями барьера случайные действия до действия, следующие за успешным возвратом изсоответствующие ждут в других темах.
Это означает
thread 1 thread 2
write x1; write x2
barrier.await(); barrier.await();
read x2 read x1
, дополнительная синхронизация не требуется;read x2
увидит результат write x2