Назад к вопросам
Т-Банк
Junior — Middle
60
Имел ли опыт использования класса ThreadLocal в своих проектах?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Класс ThreadLocal в Java используется для хранения данных, которые уникальны для каждого потока. Это значит, что каждый поток имеет свою собственную копию переменной, и изменения в одном потоке не влияют на значения в других.
Пример использования ThreadLocal:
public class ThreadLocalExample {
private static ThreadLocal<Integer> threadLocal = ThreadLocal.withInitial(() -> 0);
public static void main(String[] args) {
Runnable task = () -> {
int value = threadLocal.get();
value += 1;
threadLocal.set(value);
System.out.println(Thread.currentThread().getName() + " - " + threadLocal.get());
};
Thread thread1 = new Thread(task, "Поток 1");
Thread thread2 = new Thread(task, "Поток 2");
thread1.start();
thread2.start();
}
}
В этом примере каждый поток имеет свою копию переменной, и изменения в одном потоке не влияют на другой. ThreadLocal полезен, когда нужно хранить состояние, специфичное для потока, например, в многопоточных приложениях для хранения контекста пользователя или соединения с базой данных.