Junior — Middle
Que tipos de coleções de dados são destinados a trabalhar de forma segura em um ambiente multithread?
sobes.tech IA
Resposta da IA
Para trabalhar com segurança com coleções num ambiente multithread em Java, existem classes e interfaces especiais do pacote java.util.concurrent e envolventes sincronizadas. Os principais tipos:
- ConcurrentHashMap — implementação segura para threads de Map com alto desempenho.
- CopyOnWriteArrayList — lista segura para threads que copia o array interno ao fazer alterações, adequada para leituras frequentes e alterações raras.
- BlockingQueue (por exemplo, ArrayBlockingQueue, LinkedBlockingQueue) — filas que suportam operações de bloqueio, úteis para organizar a interação entre threads.
- Collections.synchronizedList/Map/Set — envolventes que tornam as coleções comuns sincronizadas.
Exemplo de uso de ConcurrentHashMap:
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key", 1);
Integer value = map.get("key");
Estas coleções ajudam a evitar problemas de condições de corrida e garantem funcionamento correto ao acesso simultâneo de múltiplos threads.