Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Потокобезопасные коллекции / 9 сообщений из 9, страница 1 из 1
26.03.2012, 20:07:46
    #37724107
ukku
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасные коллекции
Добрый день. Подскажите пожалуйста потокобезопасную коллекцию с неблокирующим чтением. В коллекцию активно добавляются и удаляются элементы. Спасибо!
...
Рейтинг: 0 / 0
26.03.2012, 20:10:53
    #37724116
ukku
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасные коллекции
А, ну еще коллекцию реализующую List желательно :)
...
Рейтинг: 0 / 0
26.03.2012, 21:06:42
    #37724215
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасные коллекции
List подразумевает частый поиск по индексу.
Если его можно избежать, то ConcurrentLinkedQueue
Если без него никак, то CopyOnWriteArrayList
Если работу со списком можно инкапсулировать в одном классе, то и ReentrantReadWriteLock сойдёт.
...
Рейтинг: 0 / 0
27.03.2012, 10:32:14
    #37724814
ukku
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасные коллекции
Blazkowicz, спасибо. С List погорячился, еще Set вполне подойдет(но походу ConcurrentTreeSet). От CopyOnWriteArrayList наоборот отказываюсь из-за того что идет очень частая добавление/удаление объектов. Как понимаю ReentrantReadWriteLock не дает читать, пока кто-то что-то меняет?
...
Рейтинг: 0 / 0
27.03.2012, 10:37:23
    #37724833
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасные коллекции
ukkuКак понимаю ReentrantReadWriteLock не дает читать, пока кто-то что-то меняет?
Задача читателей и писателей. Чтение блокирует запись, но не блокирует чтение. Запись блокирует и запись и чтение.
Если пессимистические блокировки в вашем случае не будут причиной тормозов, то можно использовать.
...
Рейтинг: 0 / 0
27.03.2012, 13:51:02
    #37725367
schwa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасные коллекции
ConcurrentSkipListSet ?
Он теоретически должен лучше справляться random access удаления/вставками чем тот же ConcurrentLinkedQueue
...
Рейтинг: 0 / 0
27.03.2012, 18:58:18
    #37726060
ukku
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасные коллекции
Blazkowicz, schwa, Спасибо!
...
Рейтинг: 0 / 0
27.03.2012, 19:07:48
    #37726070
ukku
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасные коллекции
Хотя есть еще пара вопросов может не в тему.
1)Интерфейс iterable в коллекциях Concurrent* потокобезопасен? Если да, то механизм аналогичен CopyOnWriteArrayList или нет?
2)Если где-нибудь в документации по java какая-нибудь красивая картинка по иерархии коллекции, чтобы это как-то можно было представить? а то голова кругом :)
...
Рейтинг: 0 / 0
27.03.2012, 20:00:09
    #37726152
schwa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Потокобезопасные коллекции
1) Итераторы этих коллекций ничего не копируют, но просто не бросают ConcurrentModificationException, как это делают обычные коллекции, а видят модификации коллекции во время обхода.
Итераторы же copy-on-write коллекций просто не видят изменений, но тоже ничего не копируют.

2)
вроде в java кодах есть краткое описание. А так в книге Java Concurrency In Practice есть некое овервью некоторых классов.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Потокобезопасные коллекции / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]