Я хочу иметь синхронизированный блок, в котором объект для синхронизации возвращается из вызова метода:
...
synchronized( someGetMethod() ) {
// synchronized block
}
...
Есть ли предположение, что "someGetMethod" синхронизирован или только "// синхронизированный блок""section?
Заранее спасибо
Редактировать: У меня есть коллекция (Карта объектов для блокировки). «SomeGetMethod» проверяет, присутствует ли объект на карте, если нет, он добавит его и вернет, чтобы заблокировать. Из ответов ниже я понимаю, что someGetMethod может возвращать значение, которое уже есть на карте, но перед входом в синхронизированный блок переключиться на другой поток, который может удалить указанное выше значение. В результате другой поток может выполнить ту же проверку через "someGetMethod" и теперь получить другой результат. Поэтому, похоже, мне следует выполнить удаление из синхронизированного блока, есть ли лучший вариант?
Edit2:Спасибо за вашу помощь. Я нашел похожий вопрос - синхронизированный блок Java с использованием вызова метода для получения объекта синхронизации