ConcurrentModificationException:
Feb 09 2023
주요 방법은 목록에 정수를 추가하는 것입니다. 기본 메서드 내에서 자식 스레드를 시작합니다.
주요 방법은 목록에 정수를 추가하는 것입니다.
기본 메서드 내에서 자식 스레드를 시작합니다. 즉
t.start()
현재 프로세스에 2개의 스레드가 있습니다.
이제 주 스레드는 목록의 요소를 반복하려고 시도하고 이 프로세스 내에서 하위 스레드는 요소 4를 목록에 추가하려고 시도합니다.
따라서 ConcurrentModificationException이 발생합니다.
ConcurrentModificationException을 피하는 방법?
1. ConcurrentCollectionException을 발생시키지 않는 concurrentHashmap 및 CopyonWriteArrayList와 같은 동시 컬렉션을 사용할 수 있습니다.
2. 컬렉션 클래스에 대한 반복 대신 Array에 대해 반복할 수 있지만 배열 크기가 너무 큰 경우에만 성능이 저하됩니다.
메모:
다른 스레드가 컬렉션 개체를 수정하려고 할 때만 이 예외가 발생하는 것은 필수 사항이 아닙니다. 단일 스레드에 개체의 계약을 위반하려는 일부 또는 다른 메서드가 있는 경우 발생할 수 있습니다.

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































