Mengapa pengecualian pengubahsuaian serentak berlaku di java?

Isi kandungan:

Mengapa pengecualian pengubahsuaian serentak berlaku di java?
Mengapa pengecualian pengubahsuaian serentak berlaku di java?
Anonim

ConcurrentModificationException berlaku apabila objek cuba diubah suai secara serentak apabila ia tidak dibenarkan. Pengecualian ini biasanya berlaku apabila seseorang bekerja dengan kelas Koleksi Java. Sebagai Contoh - Tidak dibenarkan untuk utas untuk mengubah suai Koleksi apabila beberapa utas lain beralih ke atasnya.

Bagaimanakah saya boleh membetulkan pengecualian pengubahsuaian serentak?

Kami juga boleh mengelakkan Pengecualian Pengubahsuaian Serentak dalam persekitaran berulir tunggal. Kita boleh menggunakan kaedah alih keluar Iterator untuk mengalih keluar objek daripada objek koleksi asas. Tetapi dalam kes ini, anda boleh mengalih keluar objek yang sama sahaja dan bukan objek lain daripada senarai.

Bagaimanakah anda menghalang pengecualian pengubahsuaian serentak pada peta?

gunakan ConcurrentHashMap. teruskan menggunakan HashMap mudah, tetapi bina peta baharu pada setiap pengubahsuaian dan tukar peta di belakang tabir (menyegerakkan operasi suis atau menggunakan AtomicReference)

Kaedah iterator yang manakah membuang pengecualian pengubahsuaian serentak?

Jika kita menggunakan urutan kaedah pada objek yang melanggar kontraknya, maka objek itu membuang ConcurrentModificationException. Contohnya: jika semasa mengulangi koleksi, kami terus cuba mengubah suai koleksi itu, maka fail-fast iterator akan membuang ConcurrentModificationException ini.

Apakah pengecualian pengubahsuaian serentak dalam limpahan tindanan Java?

Jika utas tunggal mengeluarkan urutan penyebutan kaedah yang melanggar kontrak objek, objek boleh membuang pengecualian ini. Sebagai contoh, jika urutan mengubah suai koleksi secara langsung semasa ia berulang ke atas koleksi dengan lelaran yang gagal-cepat, iterator akan membuang pengecualian ini.

Disyorkan:

Artikel yang menarik
Adakah eukariota mempunyai mrna polikistik?
Baca lebih lanjut

Adakah eukariota mempunyai mrna polikistik?

Walau bagaimanapun, mRNA polycistronic diketahui wujud dalam virus eukariotik [5], oleh itu jentera translasi eukariotik mesti mempunyai cara untuk menanganinya. Adakah mRNA polycistronic dalam eukariota atau prokariot? Transkripsi Penuh mRNA polycistronic ialah mRNA yang mengekod untuk berbilang produk protein yang berbeza.

Adakah einstein seorang yang kekal?
Baca lebih lanjut

Adakah einstein seorang yang kekal?

Einstein dan masa lalu, kini dan masa depan. Ia adalah dipanggil Keabadian. … Pada masa lalu (Ha!), masa dianggap sebagai kuasa yang bertindak ke atas tiga dimensi yang lain. Dengan mekanik kuantum dan kontinum masa ruang, masa dianggap sebagai dimensi keempat, dirujuk sebagai "

Adakah segi empat masa dibina?
Baca lebih lanjut

Adakah segi empat masa dibina?

Di 1905 The New York Times membina dan berpindah ke bangunan kedua tertinggi, Menara Times ketika itu, terletak di antara Broadway dan Seventh Avenue dan 42 nd dan 43 rd Jalan. Semasa peralihan besar inilah yang dikenali sebagai Dataran Longacre, terkenal dengan perdagangan kudanya, dinamakan semula sebagai Dataran Times.