LongAdder — это класс, введенный в Java 8, который представляет собой альтернативу классу AtomicLong для выполнения атомарных операций над переменными типа
long. Он предоставляет более высокую производительность в некоторых сценариях, чем AtomicLong, особенно в случаях, когда множество потоков изменяют одну и ту же переменную.Основные отличия LongAdder от AtomicLong:
— LongAdder разделяет внутренние счетчики между потоками, что позволяет потокам увеличивать разные счетчики и объединять их при необходимости. Это уменьшает конкуренцию между потоками, что может повысить производительность.
— Когда несколько потоков одновременно увеличивают LongAdder, он автоматически разделяет изменения между внутренними счетчиками, таким образом, уменьшая ожидание блокировки.
— Для получения общей суммы всех внутренних счетчиков LongAdder предоставляет метод
sum(), который объединяет значения счетчиков.#для_продвинутых
