Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
44 / 44 / 11
Регистрация: 21.01.2013
Сообщений: 668

Как работают copyOnwrite коллекции

03.05.2014, 11:04. Показов 3030. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в пакете java.util.concurrent.* есть много коллекций. Часть из них это copyOnWrite коллекции.

Везде, где я читал пишут, что при попытке модифицировать коллекцию(добавление/удаление/изменение ссылки) создается новая копия лежащего в основе массива. Но я не понимаю что потом делается с этой копией.

Будет ли она синхронизирована с "главным" массивом когда-либо ?

Что если 2+ потоков будут одновременно менять коллекцию? появляются же проблемы мёржа тогда. один поток удалил элемент А, а другой поток изменил его.

Спасибо.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.05.2014, 11:04
Ответы с готовыми решениями:

Как удалить элемент из коллекции, во время перебора этой коллекции foreach?
Прив. Смотрите что. Есть сервер, на нем 2 класса - Server & ClientConnection. При подключении нового клиента в Server создается новый...

Анонимные коллекции в другие коллекции, как?
Здравствуйте. Говорю сразу, я не уверен что есть такой термин как анонимная коллекция. Наверно будет правильно сказать анонимная...

Удаление элемента коллекции в коллекции коллекции )
Есть коллекция (к1), в ней элементы + коллекция (к2), Так вот в к2 тоже есть элементы, и из к2 надо удалить элемент. к1 отображается на...

3
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
03.05.2014, 14:27
Лучший ответ Сообщение было отмечено gredwhite как решение

Решение

gredwhite, Так посмотрите исходники. Там всё очень кратко и понятно.
Цитата Сообщение от gredwhite Посмотреть сообщение
Но я не понимаю что потом делается с этой копией.
Будет ли она синхронизирована с "главным" массивом когда-либо ?
Модифицированная версия и становится "главной". Основная фишка в том, что старая версия массива запоминается в итераторе, и итератор может итерироваться по старой весии без какой-либо синхронизации.
Цитата Сообщение от gredwhite Посмотреть сообщение
Что если 2+ потоков будут одновременно менять коллекцию?
Там один лок на все модификации.
1
44 / 44 / 11
Регистрация: 21.01.2013
Сообщений: 668
03.05.2014, 15:18  [ТС]
Да, правда ведь если мы взяли итератор, потом засетали новый массив в коллекцию, то итератор вполне себе ходит по старому массиву, хоть этот старый массив теперь отношения к коллекции и не имеет.

Добавлено через 13 минут
и судя по всему этот итератор только для чтения.
0
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
03.05.2014, 21:34
итераторы могут быть fail-fast и fail-safe, в случае вопроса используется второй
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.05.2014, 21:34
Помогаю со студенческими работами здесь

Не работают задние USB а передние работают как по маслу в чем дело.
Здравствуйте.Включил комп и заметил что не работает принтер подумал что отключил от питания а оказалось что не работают задние usb,передние...

Сделать сортировку коллекции вместо создания новой коллекции с передачей IOrderedEnumerable<T>
Есть: SortableObservableCollection&lt;T&gt; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using...

Доступ из элемента коллекции к другим элементам коллекции
Подскажите как получить данные из другого элемента коллекции? В приведенном примере необходимо реализовать метод который бы брал значение...

Комбобокс и коллекции. Или коллекции комбобоксов
Ребят, изобразил пример, посмотрите пожалуйста ...там при двойном щелчке на, допустим &quot;Профессия 2&quot; , вылезает окно с...

Удаление коллекции объектов из коллекции
Доброго дня. Подскажите каким образом можно удалить коллекцию объектов из коллекции с помощью linq? Например, есть List&lt;int&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru