Обновить

Комментарии 5

Очень странно, что в статье об атомарном многопоточном доступе к счётчику совсем не упоминается java.util.concurrent.atomic и AtomicInteger из этого пакета

вы заметите, что результат каждый раз разный и почти всегда меньше 200 000.

звучит как будто он иногда может быть и больше 200_000

Говоря про ReentrantLock я бы еще добавил, что у него есть свойство fair - если его выставить, то, например, в случае двух потоков, они будут хватать монитор поочереди (что удобно, когда стоит задача типа "заставь ноги шагать поочереди")

Также у ломбока есть аннотация Synchronized - уж можно было бы и про нее сказать, чем она лучше/хуже

Берем из всей многогранность работы с Java threads и набора инcтрументов для синхронизации один очень частный случай и опс... статья готовая. Примитивная до нельзя.

Зачем я вообще это читал и открыл..

Сама долго пользовалась только synchronized. Когда нужно не ждать, а идти дальше или логировать - Lock реально выручает. Но удобнее автоматическое освобождение synchronized. В новых версиях Java synchronized действительно не уступает по скорости, а если нужна гибкость - Lock, если просто защитить данные - хватит synchronized.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации