Por que a exceção de modificação simultânea ocorre em java?

Por que a exceção de modificação simultânea ocorre em java?
Por que a exceção de modificação simultânea ocorre em java?
Anonim

A ConcurrentModificationException ocorre quando um objeto tenta ser modificado simultaneamente quando não é permitido. Essa exceção geralmente ocorre quando se está trabalhando com classes Java Collection. Por exemplo - Não é permitido que um thread modifique uma coleção quando algum outro thread estiver iterando sobre ele.

Como faço para corrigir a exceção de modificação simultânea?

Também podemos evitar a Exceção de Modificação Concorrente em um único ambiente de encadeamento. Podemos usar o método remove de Iterator para remover o objeto da coleção subjacente. Mas neste caso, você pode remover apenas o mesmo objeto e não qualquer outro objeto da lista.

Como você evita a exceção de modificação simultânea em um mapa?

use ConcurrentHashMap. continue usando HashMap simples, mas construa um novo mapa em cada modificação e alterne mapas nos bastidores (sincronizando a operação de comutação ou usando AtomicReference)

Qual método do iterador lança exceção de modificação simultânea?

Se invocarmos uma sequência de métodos em um objeto que viola seu contrato, então o objeto lança ConcurrentModificationException. Por exemplo: se durante a iteração sobre a coleção, tentarmos modificar diretamente essa coleção, o fail-fast iterator fornecido lançará esta ConcurrentModificationException.

Qual é a exceção de modificação simultânea no estouro de pilha Java?

Se uma única thread emitir uma sequência de invocações de métodos que viole o contrato de um objeto, o objeto pode lançar essa exceção. Por exemplo, se um encadeamento modifica uma coleção diretamente enquanto está iterando sobre a coleção com um iterador fail-fast, o iterador lançará essa exceção.

Recomendado: