Атомарное присвоение длинного значения в Java

У меня есть вариант использования для обновления эпохи событий в длинной переменной. У этой переменной также будет много одновременных операций чтения и записи. Вот подробные требования:

  1. Очень быстрое завершение чтения и записи
  2. Чтение может возвращать или не возвращать последний результат, но не должно возвращать поврежденный результат
  3. Записи - это простое присвоение новому значению эпохи, добавление, вычитание или вычисление не требуется.

Какая из альтернатив лучше подходит для моего варианта использования:

  1. примитивный длинный с изменчивым ключевым словом
  2. AtomicLong
  3. Длинный Аккумулятор с гидроаккумулятором. (x,y) -> y
  4. Две разные переменные - одна только для чтения значений, а другая изменчивая переменная только для записи значения, значение переменной записи копируется для чтения переменной в некотором интервале.

1 ответ

Использовать AtomicLong поскольку это помогает избежать дополнительных накладных расходов на явную блокировку

Другие вопросы по тегам