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

start [/forum/topic.php?fid=59&mobile=1&tid=2132205]: |
0ms |
get settings: |
13ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
48ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 330ms |
| total: | 507ms |

| 0 / 0 |
