Magna Concursos
3219661 Ano: 2024
Disciplina: TI - Desenvolvimento de Sistemas
Banca: FGV
Orgão: CVM

Considere o seguinte código em Java:

import java.util.concurrent.atomic.AtomicInteger;

class MultiSomador extends Thread {
  int n = 1_000;
  int saida = 1;
  AtomicInteger contagem = new AtomicInteger(1);

  public void run() {
    for (short i = 0; i < n; i++)
    saida = contagem.getAndIncrement();
  }
}

public class Principal {
  public static void main(String[] args)
  throws InterruptedException {
    MultiSomador a = new MultiSomador();
    Thread b = new Thread(a, "b");
    Thread c = new Thread(a, "c");
    b.start(); b.join(0);
    c.start(); c.join(0);
  
    System.out.print(a.contagem+", "+a.saida);
  }
}

Ao ser executado em um ambiente Java com suporte à classe de biblioteca AtomicInteger, o código acima imprime na saída padrão:

 

Provas

Questão presente nas seguintes provas