Назначение объекта в синхронизированном блоке на основе этого объекта (Java)

Я столкнулся с некоторым (рабочим!) кодом, который выглядит как приведенный ниже фрагмент:

synchronized(some_object) {
    some_object = new some_object()
}

Я ожидаю, что это будет подвержено всем видам ужасных условия гонки, и что второй поток может войти в этот блок после создания нового объекта. Мои отбивные по Java недостаточно хороши, чтобы окончательно сформулировать ожидаемое поведение выше, поэтому любопытно, что вы, ребята, должны сказать, прежде чем я рефакторинг этого.

5
задан Peter Friend 24 May 2012 в 23:06
поделиться