Сделайте объект AtomicXXX изменчивым - PullRequest
1 голос
/ 11 ноября 2011

Я прочитал некоторую информацию об изменчивых переменных и их аналогах AtomicXXX (например, AtomicBoolean).

Но бывают ли ситуации, когда мне нужно сделать сам объект AtomicXXX энергозависимым или это никогда не требуется?

Ответы [ 2 ]

1 голос
/ 11 ноября 2011

Вам не нужно - на самом деле атомные объекты должны быть действительно установлены как final !!

Пример:

private final AtomicInteger atomicInt = new AtomicInteger(0);

private volatile int volatileInt = 0;

public void doStuff() {
  // To use the atomic int, you use the setters and getters!
  int gotAnInt = atomicInt.getAndIncrement();

  // To use a volatile, access and set it directly. 
  int gotAnotherInt = volatileInt;
  volatileInt = someOtherInt;
}
1 голос
/ 11 ноября 2011

Прочитайте это для некоторых советов и объяснений, когда использовать volatile.Но в основном, если вы используете AtomicXXX, вам НЕ НУЖНО использовать volatile.

...