The ConcurrentModificationExceptions hutokea wakati kipengee kinapojaribiwa kurekebishwa kwa wakati mmoja wakati hairuhusiwi. Ubaguzi huu kawaida huja wakati mtu anafanya kazi na madarasa ya Ukusanyaji wa Java. Kwa Mfano - Hairuhusiwi kwa mazungumzo kurekebisha Mkusanyiko wakati mazungumzo mengine yanarudiwa juu yake.
Je, ninawezaje kurekebisha ubaguzi kwa wakati mmoja?
Tunaweza pia kuepuka Ubaguzi wa Marekebisho kwa Wakati Mmoja katika mazingira yenye nyuzi. Tunaweza kutumia mbinu ya kuondoa ya Iterator ili kuondoa kipengee kutoka kwa mkusanyiko wa kitu cha msingi. Lakini katika kesi hii, unaweza kuondoa tu kitu sawa na si kitu kingine chochote kutoka kwenye orodha.
Je, unazuiaje ubaguzi wa urekebishaji kwa wakati mmoja kwenye ramani?
tumia ConcurrentHashMap. endelea kutumia HashMap rahisi, lakini jenga ramani mpya kwenye kila urekebishaji na ubadilishe ramani zilizo nyuma ya pazia (kusawazisha utendakazi wa kubadili au kutumia AtomicReference)
Je, ni njia gani ya kurudia tena isiyofuata kanuni ya urekebishaji?
Iwapo tutaomba mfuatano wa mbinu kwenye kifaa ambacho kinakiuka mkataba wake, basi kitu hiki kitatupa ConcurrentModificationException. Kwa mfano: ikiwa tunarudia mkusanyo, tutajaribu kurekebisha mkusanyo huo moja kwa moja, basi kirudia-haraka kitatupa Kighairi hiki cha ConcurrentModification.
Je, ni ubaguzi gani wa urekebishaji kwa wakati mmoja katika kufurika kwa rafu ya Java?
Iwapo mazungumzo moja yatatoa mfuatano wa maombi ya mbinu ambayo yanakiuka mkataba wa kitu, object inaweza kutupa ubaguzi huu. Kwa mfano, ikiwa mazungumzo yatarekebisha mkusanyo moja kwa moja huku yakirudia mkusanyo kwa kutumia kirudishaji kisichoweza kufaulu, kiboreshaji kitatupa ubaguzi huu.