Обновить

Довольно частый сценарий использования атомиков в качестве счётчиков выглядит так:

  • Запускаем длительную обработку чего-либо

  • Долго и нудно его инкрементим

  • По завершению один раз читаем (ну, либо, читаем с некоторой периодичностью, для отображения прогресса)

А так как отдельно метода increment() у него нет, то используются штатные getAndIncrement() либо incrementAndGet() без использования возвращаемого значения. Например:

public void frequentlyCalledMethod(){    
    doSomeWork();    
    counter.incrementAndGet();
}

Или может getAndIncrement()? Хм… А в чём, собственно, разница, кроме очевидного из имени методов?

public final int incrementAndGet() {
   return U.getAndAddInt(this, VALUE, 1) + 1;
}
public final int getAndIncrement() {
   return U.getAndAddInt(this, VALUE, 1);

}

Ну вы поняли…

Мелочь конечно, но если всё равно отбрасываем результат, то зачем нам лишняя операция?

Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Сбой в работе Reg.ru и проблемы с сервисами Рунета из‑за аварии на ММТС-9

18 августа 2026 года произошёл сбой в работе сервисов хостинг‑провайдера и регистратора доменов Reg.ru. Сбой в работе Рунета вызван перебоями в подаче электроэнергии на крупном узле связи, сообщил ТАСС доменный регистратор «Рег.ру». Два источника и сотрудник ММТС-9 подтвердили РБК, что на части этажей ММТС-9 нет электричества.

Сбой в работе Reg.ru и проблемы с сервисами Рунета из‑за аварии на ММТС-9

Публикации