Sobes.tech
Назад к вопросам
Senior
6

Что такое ThreadLocal?

Компании, где спрашивали
ТБанк

Ответ от нейросети

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();
    }
}

В этом примере каждый поток имеет свой счётчик, который не пересекается с другим потоком.