Встречается на собеседованиях • сегодня
Что такое 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
```
Каждый поток увеличивает свою копию переменной независимо.
**Используется для:** хранения контекста (например, пользовательской сессии), избегания передачи параметров через методы.
**Важно:** очищать `ThreadLocal` (через `remove()`), иначе возможны утечки памяти, особенно в пулах потоков.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы