2015-07-29 5 views
1

Какие другие способы сделать арраист синхронизирован без использования Collections.synchronizedList()?Сделать метод arraylist синхронизированным без использования Collections.synchronizedList()

+5

Что вы имеете в виду? Почему вы хотите этого? –

+1

Что именно вы спрашиваете? Что у вас есть против метода, который вы упомянули? Опишите точно, почему это не сработает для вас. –

ответ

3

Метод Collection.synchronizedList() просто обертывает существующий List, синхронизируя все методы, которые могут быть доступны из класса клиента на одном мьютексе.

Ничего более или менее, если вы хотите эмулировать поведение, самый простой способ - сделать то же самое. Но я не вижу смысла в этом.

0

ConcurrentLinkedQueue не является List, но он является потокобезопасным при доступе к его элементам.

1

я надеюсь, что есть 2 способа,

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

  2. пользователя CopyOnWriteArrayList который является еще поточно версией ArrayList ,

1

Рассмотрите возможность использования CopyOnWriteArrayList или других параллельных коллекций от java.util.concurrent. Кроме того, Vector по существу синхронизирован ArrayList, но это также означает, что он в основном такой же, как ArrayList, обернутый Collection.synchronizedList().

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

Смежные вопросы