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.