Ang ConcurrentModificationException ay nangyayari kapag ang isang bagay ay sinubukang baguhin nang sabay-sabay kapag hindi ito pinapayagan. Ang pagbubukod na ito ay karaniwang dumarating kapag ang isa ay nagtatrabaho sa mga klase ng Java Collection. Para sa Halimbawa - Hindi pinapayagan para sa isang thread na baguhin ang isang Collection kapag may ibang thread na umuulit dito.
Paano ko aayusin ang concurrent modification exception?
Maaari din nating maiwasan ang Concurrent Modification Exception sa iisang threaded environment. Maaari naming gamitin ang ang paraan ng pag-alis ng Iterator upang alisin ang object mula sa pinagbabatayan na object ng koleksyon. Ngunit sa kasong ito, maaari mong alisin lamang ang parehong bagay at hindi ang anumang iba pang bagay mula sa listahan.
Paano mo mapipigilan ang kasabay na pagbubukod sa pagbabago sa isang mapa?
use ConcurrentHashMap. patuloy na gumamit ng simpleng HashMap, ngunit bumuo ng bagong mapa sa bawat pagbabago at lumipat ng mga mapa sa likod ng mga eksena (pag-synchronize ng pagpapatakbo ng switch o paggamit ng AtomicReference)
Aling paraan ng iterator ang naghagis ng kasabay na pagbubukod sa pagbabago?
Kung mag-invoke tayo ng sequence ng mga method sa isang object na lumalabag sa kontrata nito, ihahagis ng object ang ConcurrentModificationException. Halimbawa: kung habang inuulit ang koleksyon, direkta naming sinusubukang baguhin ang koleksyong iyon, ang ibinigay na fail-fast iterator ay itatapon itong ConcurrentModificationException.
Ano ang concurrent modification exception sa Java stack overflow?
Kung ang isang thread ay nag-isyu ng pagkakasunod-sunod ng mga paraan ng invocations na lumalabag sa kontrata ng isang object, ang object ay maaaring itapon ang exception na ito. Halimbawa, kung binago ng isang thread ang isang koleksyon nang direkta habang ito ay umuulit sa koleksyon gamit ang isang hindi mabilis na iterator, itatapon ng iterator ang pagbubukod na ito.