Все мы знаем, что при использовании Collections.synchronizedXXX
(например, synchronizedSet ()
) мы получаем синхронизированное "представление" базовая коллекция.
Однако в документе этих методов создания оболочки указано, что мы должны явно синхронизировать коллекцию при итерации коллекций с использованием итератора.
Какой вариант вы выбираете для решите эту проблему?
Я вижу только следующие подходы:
iterator ()
CopyOnWriteArrayList
/ Set) И в качестве бонусного вопроса: при использовании синхронизированного представления - является ли использование foreach / Iterable потокобезопасным?