CopyOnWriteArrayList: плюсы и минусы?

Ответ

Плюсы: lock-free чтение (читатели не блокируются), fail-safe итератор (работает со snapshot). Минусы: при каждой записи — копирование всего массива → дорого. Подходит: много чтений, редкие записи (listeners, подписчики).

Разбор: В CopyOnWriteArrayList чтение происходит без блокировок, а итератор работает со снимком (snapshot) и не бросает ConcurrentModificationException, отражая состояние на момент создания. При любой записи целиком копируется внутренний массив, поэтому структура хороша при редких записях и частых чтениях. Ловушки: запись не lock-free на месте, итератор не видит последующих изменений, а чтение никогда не синхронизируется и не блокируется.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться