Для чего нужен ThreadLocal?

Ответ

Хранение значения, уникального для каждого потока. Например, traceId, MDC для логов, контекст транзакции. В рамках одного потока — данные доступны без передачи через параметры. В пулах нужно вызывать remove(), иначе возможны утечки.

Разбор: ThreadLocal даёт каждому потоку собственную независимую копию значения (traceId, MDC, контекст транзакции), доступную без передачи через параметры. Дистракторы ошибочны: ThreadLocal не синхронизирует доступ к общему объекту (наоборот, изолирует копии), не очищается сам в пулах (нужен remove(), иначе утечки), а наследование значений даёт лишь InheritableThreadLocal, и то на момент старта дочернего потока.

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

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