Есть ли сценарий, в котором AtomicInteger.accumulateAndGet()
не может быть заменен на AtomicInteger.updateAndGet()
, или это просто удобство для ссылок на методы?
Вот простой пример, где я не вижу функциональной разницы:
AtomicInteger i = new AtomicInteger();
i.accumulateAndGet(5, Math::max);
i.updateAndGet(x -> Math.max(x, 5));
Очевидно, то же самое происходит и для getAndUpdate()
и getAndAccumulate()
.