ConcurrentModificationException:

Feb 09 2023
Ana yöntem, tamsayıları listeye eklemeye çalışmaktır. Ana yöntemde alt diziyi başlatıyoruz.

Ana yöntem, tamsayıları listeye eklemeye çalışmaktır.

Ana yöntemde alt diziyi başlatıyoruz. yani

t.başlangıç()

Şu anda, sürece giren 2 iş parçacığımız var.

Şimdi ana iş parçacığı listenin öğelerini yinelemeye çalışıyor ve bu süreçte alt iş parçacığı 4. öğeyi listeye eklemeye çalışıyor.

Böylece ConcurrentModificationException verir.

ConcurrentModificationException nasıl önlenir?

1.Asla ConcurrentCollectionException vermeyecek concurrentHashmap ve CopyonWriteArrayList gibi eşzamanlı koleksiyonlardan yararlanabiliriz.

2. Koleksiyon sınıfı üzerinde yineleme yapmak yerine, Array üzerinde yineleme yapabiliriz, ancak bu, yalnızca dizi boyutu çok büyükse performansı azaltacaktır.

Not:

Bu istisnanın yalnızca diğer iş parçacığı bir koleksiyon nesnesini değiştirmeye çalıştığında atılması zorunlu değildir, tek bir iş parçacığının nesnenin sözleşmesini ihlal etmeye çalışan bir yöntemi veya başka bir yöntemi varsa olabilir.