ExpertiDict

Java · Intermediário · Inglês · Técnico

AtomicInteger

/əˈtɑmɪk ˈɪntɪdʒər/substantivo

Inteiro cuja leitura e atualização são atômicas e sem lock, baseadas em instruções compare-and-set do processador.

Onde usar

Aparece em contadores compartilhados: incrementAndGet no lugar de synchronized. Em review: 'count++ em int não é atômico'.

Em código

var total = new AtomicInteger();
IntStream.range(0, 1000).parallel()
    .forEach(i -> total.incrementAndGet());
System.out.println(total.get()); // 1000

Exemplos

Use an AtomicInteger for the shared counter.

Use um AtomicInteger para o contador compartilhado.

Two atomic calls in a row are still not atomic together.

Duas chamadas atômicas seguidas ainda não são atômicas em conjunto.

Cuidado

Atomic cobre uma variável só; duas operações atômicas em sequência não formam uma operação atômica composta.

Veja também

Todos os termos de Java