Sobes.tech
Junior — Middle

Qual tipo de estrutura é melhor usar para garantir a segurança de thread ao atualizar elementos raramente em uma lista?

sobes.tech IA

Resposta da IA

Para garantir a segurança em situações de atualizações pouco frequentes de elementos numa lista em Java, a estrutura de dados CopyOnWriteArrayList é bastante adequada.

Características do CopyOnWriteArrayList:

  • A cada modificação (adição, remoção), uma nova cópia do array interno é criada.
  • A leitura ocorre sem bloqueios, o que é muito eficiente em leituras frequentes e escritas raras.

Exemplo de uso:

import java.util.concurrent.CopyOnWriteArrayList;

CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
list.add("element1");
list.add("element2");

// Leitura segura para múltiplos threads
for (String s : list) {
    System.out.println(s);
}

Assim, o CopyOnWriteArrayList é adequado quando as atualizações são raras e as leituras frequentes, garantindo segurança sem sincronização complexa.