Back to questions
Senior
5
Что такое ThreadLocal?
Companies where asked
ТБанк
Answer from AI
sobes.tech AI
ThreadLocal в Java — это класс, который позволяет создавать переменные, локальные для каждого потока. Каждому потоку при обращении к ThreadLocal предоставляется своя отдельная копия переменной, недоступная другим потокам.
Это полезно, когда нужно хранить состояние, специфичное для потока, без необходимости синхронизации.
Пример использования:
public class ThreadLocalExample {
private static ThreadLocal<Integer> threadLocalCounter = ThreadLocal.withInitial(() -> 0);
public static void main(String[] args) {
Runnable task = () -> {
int count = threadLocalCounter.get();
count++;
threadLocalCounter.set(count);
System.out.println(Thread.currentThread().getName() + " count: " + threadLocalCounter.get());
};
Thread t1 = new Thread(task, "Thread-1");
Thread t2 = new Thread(task, "Thread-2");
t1.start();
t2.start();
}
}
В этом примере каждый поток имеет свой счётчик, который не пересекается с другим потоком.