Rumah > Java > javaTutorial > Mengapa Saya Mendapat ConcurrentModificationException dalam Kaedah Disegerakkan?

Mengapa Saya Mendapat ConcurrentModificationException dalam Kaedah Disegerakkan?

Patricia Arquette
Lepaskan: 2024-11-08 02:50:01
asal
884 orang telah melayarinya

Why Am I Getting ConcurrentModificationException in a Synchronized Method?

ConcurrentModificationException dalam Kaedah Disegerakkan: Merungkai Kekeliruan

Dalam kaedah yang disegerakkan seperti yang disediakan, pengecualian ConcurrentModificationException boleh timbul walaupun dengan penyegerakan pengubahsuai. Pengecualian ini biasanya terhasil daripada mengubah suai koleksi yang diulang dalam gelung lelaran.

Isu di sini ialah penyegerakan kaedah tidak menjamin bahawa koleksi tidak akan diubah suai semasa lelaran berlaku. Untuk mengelakkan pengecualian ini, adalah penting untuk mengelak daripada mengubah suai koleksi semasa lelaran.

Contoh tipikal coretan kod yang akan mencetuskan pengecualian ini ialah:

Iterator iterator = collection.iterator();
while (iterator.hasNext()) {
    Item item = (Item) iterator.next();
    if (item.satisfiesCondition()) {
       collection.remove(item);
    }
}
Salin selepas log masuk

Sebaliknya, kod tersebut harus menggunakan kaedah iterator.remove() untuk mengalih keluar item daripada koleksi semasa lelaran. Jika penambahan pada koleksi diperlukan, subjenis ListIterator boleh digunakan kerana ia menyediakan kaedah add() apabila berurusan dengan senarai.

Atas ialah kandungan terperinci Mengapa Saya Mendapat ConcurrentModificationException dalam Kaedah Disegerakkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan