Предполагал что если стоит блок синхронайзед по статик ресурсу, то когда нити до него доходят они видят что другая нить уже заняла блок и не заходят пока блок не освободится.
ezhilo85
29 уровень
Почему по values синхронизация срабатывает а по count нет?
Решен
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Дмитрий
7 ноября 2018, 16:10решение
Тоже задался этим вопросом, попробовал с типами Integer, Double, Long. В итоге пришёл к тому, что данные типы не могут нормально отрабатывать в качестве мютекса в блоке synchronized, если внутри блока они переприсвоятся (как в методе incrementCount, когда мы увеличиваем инкремент).
Вот что нагуглил ещё: если вам нужен счётчик в качестве мютекса, то можно воспользоваться классами AtomicInteger или AtomicLong вместо Integer и Long, с ними проблем в синхронизации нет.
+4