Встречается на собеседованиях • сегодня

Что такое ThreadLocal

`ThreadLocal` в Java — это класс, позволяющий хранить данные, специфичные для каждого потока. Каждый поток имеет свою независимую копию переменной, что исключает проблемы синхронизации. **Пример:** ```java public class ThreadLocalExample { private static final ThreadLocal threadLocalValue = ThreadLocal.withInitial(() -> 0); public static void main(String[] args) { Runnable task = () -> { int value = threadLocalValue.get(); threadLocalValue.set(value + 1); System.out.println(Thread.currentThread().getName() + ": " + threadLocalValue.get()); }; new Thread(task).start(); new Thread(task).start(); } } ``` **Вывод:** ``` Thread-0: 1 Thread-1: 1 ``` Каждый поток увеличивает свою копию `threadLocalValue`, не влияя на другие. **Используется для:** - Хранения контекста (например, пользовательской сессии в веб-приложениях). - Избежания передачи параметров через методы. - Потокобезопасных структур (SimpleDateFormat и др.). ⚠️ Важно очищать `ThreadLocal` (через `remove()`), иначе возможны утечки памяти, особенно в пулах потоков.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы