Java предоставляет объект Lock в пакете параллелизма, который согласно документации provides more extensive locking operations than can be obtained using synchronized methods and statements.
Синхронизированные методы/блоки, помимо взаимного исключения, обеспечивают связь «происходит до», которая гарантирует, что изменения, внесенные в переменную одним потоком, видны другому.
Возникает ли эта связь при использовании объекта блокировки? Гарантируется ли наблюдение, как в случае с синхронизированным блоком, для всех платформ?