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

start [/forum/topic.php?fid=59&msg=37724215&tid=2132205]: |
0ms |
get settings: |
13ms |
get forum list: |
28ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
63ms |
get topic data: |
21ms |
get forum data: |
4ms |
get page messages: |
97ms |
get tp. blocked users: |
3ms |
| others: | 355ms |
| total: | 598ms |

| 0 / 0 |
