💡 Краткий ответ для собеседования
ThreadLocal хранит значение в самом потоке (в ThreadLocalMap, ассоциированной с потоком). Каждый поток имеет свою копию. После использования желательно вызывать remove() для предотвращения утечек памяти.
Варианты ответа в приложении: