Предположим, у вас есть два потока, которые имеют доступ к одному и тому же общедоступному объекту. Один поток имеет блок кода, который считывает поля объекта.
synchronized(object)
{
read object fields
}
Пока код чтения поля объекта выполняется в потоке 1, если поток 2 хочет обновить поля объекта, должен ли он ждать, пока поток 1 закончит чтение полей объекта перед обновлением (например, объект заблокирован от доступа другими потоками, в то время как выполняется блок синхронизированного кода)?