Я прочитал, что код внутри синхронизированного блока соответствует семантике «происходит до», так что все значения, записанные внутри синхронизированного блока, должны быть видны другим потокам подряд. Кроме того, я прочитал, что кэши только сбрасываются с завершением синхронизированного блока. Как выше в семантике «произойдет до» будет применяться в описанном ниже сценарии, если только кэши будут очищены с завершением синхронного блока?Поведение синхронизированного
Автор А имеет ссылку на объект C и изменяет поле C в синхронном коде синхронизированного на C. резьбы В также имеет ссылку на объект C. Теперь поток А приостанавливается до синхронизирована код завершения , Резьба B перескакивает в поле действия и доступа к объекту C в коде без синхронизации на C.
А теперь нить B обязательно увидит изменения, сделанные Thread A?