Junior — Middle
Podes dar exemplos de estruturas de dados colecionáveis que garantem segurança de thread?
sobes.tech IA
Resposta da IA
No Java, existem várias coleções que garantem segurança em ambientes multithread:
Vector— um equivalente seguro paraArrayList, todos os métodos são sincronizados.Hashtable— um equivalente seguro paraHashMap.- Coleções do pacote
java.util.concurrent:ConcurrentHashMap— uma tabela hash segura para múltiplos threads e de alto desempenho.CopyOnWriteArrayList— uma lista segura para múltiplos threads, ideal para cenários com leituras frequentes e modificações raras.BlockingQueuee suas implementações (LinkedBlockingQueue,ArrayBlockingQueue) — filas seguras para múltiplos threads com operações de bloqueio.
Exemplo de uso de ConcurrentHashMap:
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key", 1);
Integer value = map.get("key");
Essas estruturas permitem trabalhar de forma segura com coleções de múltiplos threads sem necessidade de sincronização externa.