O que há de errado em usar HashMap em ambiente multithread? … É um problema se vários threads estiverem adicionando à mesma instância de HashMap sem ela ser sincronizada. Mesmo que apenas 1 thread esteja modificando um HashMap e outros threads estejam lendo desse mesmo mapa sem sincronização, você terá problemas.
Você pode usar um HashMap em um ambiente multithread?
Você deve se certificar de que: Todas as atualizações do HashMap sejam concluídas antes que os encadeamentos sejam instanciados e o encadeamento que cria o mapa também bifurque os encadeamentos. Os encadeamentos estão usando apenas o HashMap no modo somente leitura – obter ou iteração sem remover. Não há tópicos atualizando o mapa.
Por que o HashMap não deve ser usado em ambiente multithread ele pode causar um loop infinito também?
A capacidade padrão do HashMap é 16 e o fator de carga é 0,75, o que significa que o HashMap dobrará sua capacidade quando o 12º par Key-Value entrar no mapa (160,75=12). Quando 2 threads tentam acessar o HashMap simultaneamente, você pode encontrar um loop infinito. Thread 1 e Thread 2 tentam colocar o 12º par chave-valor.
O HashMap é seguro para threads?
HashMap não é sincronizado. Não é thread-safe e não pode ser compartilhado entre muitos threads sem o código de sincronização adequado, enquanto o Hashtable é sincronizado.
O que é mais adequado para multithreadambiente?
A resposta é "ConcurrentHashMap"