ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   ConcurrentModificationException как исправить (https://forum.antichat.xyz/showthread.php?t=763807)

Grind 18.07.2015 18:54

Я постараюсь доступным языком рассказать об этой ошибке, её природе и способах устранения.

Исключение (ошибка) ConcurrentModificationException случается когда коллекция (или массив) изменяется одновеременно с работой по ней итератором, любым средством кроме самого итератора. Грубо говоря, вы хотите вставить в массив элемент, в то время как из массива делается выборка элемента.

Для предотвращения (исправления) такой ситуации, в тех колекциях/масивах, где такая ситуация может возникать, необходимо использовать синхронизированную (она же потокобезопасная) коллекцию.

Потокобезопасные коллекции/массивы всегда будут более затратны по времени и использованию системных ресурсов, поэтому старайтесь избегать таких ситуаций. Однако если другое решение не очевидно или неоправдано, то следует для начала опеределить, требуется ли вам синхронизация чтения/записи или только записи. 1ый вариант более ресурсоемкий чем 2ой.

Чаще всего в работе с исходным кодом вы будете встречаться с массивами List/ArrayList, в большинстве случаев рассинхрон будет происходить на операциях ввода данных, поэтому мы рассмотрим такой потобезопасный вариант массива как CopyOnWriteArrayList.

При каждой операции записи CopyOnWriteArrayList будет создавать новую копию ArrayList, тем самым не мешая одновременно чтению данных из этой коллекции.

kekess 18.07.2015 22:00

:Shock1: неужели понял )))), молодец, быстро учишься

Grind 18.07.2015 22:21

Цитата:

Сообщение от kekess

:Shock1: неужели понял )))), молодец, быстро учишься

я не учусь, я практикую, и затруднений в понимании этого не испытывал, будут вопросы обращайся нубас -

kekess 18.07.2015 22:45

- практик хренов :rofl1:

GenCloud 18.07.2015 23:05

Боже, для кого ты это обьясняешь??? Для юниоров, и то они знают коллекции, или для кого?

Grind 18.07.2015 23:08

Цитата:

Сообщение от GenCloud

Боже, для кого ты это обьясняешь??? Для юниоров, и то они знают коллекции, или для кого?

наверно для таких нубасов как ты, которые пропускали математику в 5ом классе и считают что при деление 555 по модулю на 15 мы получим 8 в остатке -

пруф https://mmo-dev.info/index.php?threads/Оператор-деления-по-модулю.768/poll/results&poll_response_id=47

для тебя другие задачи у меня есть https://mmo-dev.info/index.php?threads/Тернарный-оператор-задача.772/#post-8375

kekess 18.07.2015 23:19

- ты и его сделал )))))) :rofl1:

Grind 18.07.2015 23:21

Цитата:

Сообщение от kekess

- ты и его сделал )))))) :rofl1:


L2CCCP 18.07.2015 23:28

Цитата:

Сообщение от GenCloud

Боже бл**ь, для кого ты это обьясняешь??? Для юниоров, и то они знают коллекции, или для кого?

Уверяю, не все знают коллекции, многие знают только List,ArrayList,Map,HashMap, а бывает и их не знают

mAnGoL 19.07.2015 00:08

Цитата:

Сообщение от L2CCCP

Уверяю, не все знают коллекции, многие знают только List,ArrayList,Map,HashMap, а бывает и их не знают

Как же TreeMap


Время: 15:53