Kodėl „Java“pasitaiko lygiagrečio keitimo išimtis?

Turinys:

Kodėl „Java“pasitaiko lygiagrečio keitimo išimtis?
Kodėl „Java“pasitaiko lygiagrečio keitimo išimtis?
Anonim

ConcurrentModificationException įvyksta, kai objektą bandoma keisti vienu metu, kai tai neleistina. Ši išimtis dažniausiai pasitaiko dirbant su „Java Collection“klasėmis. Pavyzdžiui, gijai neleidžiama keisti kolekcijos, kai per ją kartojasi kita gija.

Kaip pataisyti vienu metu taikomo keitimo išimtį?

Taip pat galime išvengti lygiagrečiojo modifikavimo išimties vienoje srieginėje aplinkoje. Norėdami pašalinti objektą iš pagrindinio rinkinio objekto, galime naudoti Iterator pašalinimo metodą. Tačiau šiuo atveju iš sąrašo galite pašalinti tik tą patį objektą, o ne bet kurį kitą objektą.

Kaip išvengti vienu metu taikomų keitimų išimties žemėlapyje?

naudoti ConcurrentHashMap. toliau naudokite paprastą HashMap, bet sukurkite naują žemėlapį ant kiekvienos modifikacijos ir perjunkite žemėlapius užkulisiuose (sinchronizuokite jungiklio veikimą arba naudodami AtomicReference)

Kuris iteratoriaus metodas pateikia lygiagrečio modifikavimo išimtį?

Jei iškviečiame objekto, kuris pažeidžia jo sutartį, metodų seką, tada objektas meta ConcurrentModificationException. Pavyzdžiui: jei kartodami kolekciją mes tiesiogiai bandome modifikuoti tą rinkinį, tada nurodytas fail-fast iterator išmes šią ConcurrentModificationException.

Kas yra „Java“dėklo perpildymo vienu metu taikomų modifikacijų išimtis?

Jei viena gija pateikia metodų iškvietimų seką, kuri pažeidžia objekto sutartį, objektas gali mesti šią išimtį. Pavyzdžiui, jei gija tiesiogiai modifikuoja kolekciją, kol ji kartojasi per kolekciją su greitu iteratoriumi, iteratorius išmes šią išimtį.

Rekomenduojamas:

Įdomios straipsniai
Ar monogliceriduose yra kiaulienos?
Skaityti daugiau

Ar monogliceriduose yra kiaulienos?

Kas turėtų jų vengti? Veganai ir vegetarai gali norėti vengti mono- ir digliceridų, gaunamų iš gyvulinių riebalų. Žmonės su religiniais mitybos apribojimais taip pat gali norėti vengti mono- ir digliceridų, gaunamų iš gyvūninių riebalų, pvz.

Kaip išjungti medų?
Skaityti daugiau

Kaip išjungti medų?

Chrome sistemoje Windows Spustelėkite trijų taškų piktogramą įrankių juostos dešinėje. Spustelėkite Daugiau įrankių. Spustelėkite plėtinius. Spustelėkite Pašalinti po Honey. Dar kartą spustelėkite Pašalinti. Kaip gauti medaus nuo „Mac“?

Kas yra Rockwell nc?
Skaityti daugiau

Kas yra Rockwell nc?

Geriausi dalykai, kuriuos reikia padaryti netoli Rockwell, NC 28138 Southern Grace Distilleries. 10,8 mylios … Salisberio vaiduoklių pasivaikščiojimas. 8,6 mylios … Rockwater Farm. 1,4 mylios … Gelbėjimo ranča. 32,0 mylių … Trollin Rollin Guide Service.