ConcurrentModificationException:

Feb 09 2023
Metode utama mencoba menambahkan bilangan bulat ke daftar. Dalam metode utama, kami memulai utas anak.

Metode utama mencoba menambahkan bilangan bulat ke daftar.

Dalam metode utama, kami memulai utas anak. yaitu

t.mulai()

Saat ini, kami memiliki 2 utas dalam proses.

Sekarang utas utama mencoba mengulang elemen daftar dan dalam proses ini utas anak mencoba menambahkan elemen 4 ke dalam daftar.

Dengan demikian, ini memberikan ConcurrentModificationException.

Bagaimana cara menghindari ConcurrentModificationException?

1. Kita dapat menggunakan koleksi bersamaan seperti concurrentHashmap dan CopyonWriteArrayList yang tidak akan pernah memberikan ConcurrentCollectionException.

2. Alih-alih iterasi pada kelas koleksi, kita dapat melakukan iterasi pada Array , tetapi ini hanya akan menguras kinerja jika ukuran array terlalu besar.

Catatan:

Pengecualian ini tidak wajib dilempar hanya ketika utas lain mencoba mengubah objek koleksi, Ini dapat terjadi jika utas tunggal memiliki beberapa atau metode lain yang mencoba melanggar kontrak objek.