Вопрос сохранности объектов всегда волновал нас при проведении программных исследований. Такая же операция существует и в ThreadLocal, мы можем хранить и извлекать объекты. Это требует определенного понимания ThreadLocal и использования его метода set. Ниже мы объясним полные этапы хранения и получения данных ThreadLocal, а также поделимся с вами конкретным контентом.
1. Метод установки ThreadLocal
public void set (значение T) { Поток t = Thread.currentThread(); Карта ThreadLocalMap = getMap(t); если (карта!= ноль) map.set(это, значение); еще createMap (т, значение); }
С помощью метода set ThreadLocal мы видим, что в структуре <k, v> ThreadLocalMap ключ хранит сам ThreadLocal, а значение — это фактическое сохраненное значение. Другими словами, это копия переменной, скопированной с помощью метода set ThreadLocal. текущий ThreadLocal хранится в ThreadLocalMap.
2. ThreadLocal сам по себе не хранит значения. При использовании ThreadLocal используется как ключ для получения значения из ThreadLocalMap. Это также можно увидеть из метода get ThreadLocal:
общественный Т получить () { Поток t = Thread.currentThread(); Карта ThreadLocalMap = getMap(t); если (карта != ноль) { ThreadLocalMap.Entry e = map.getEntry(this); если (е != ноль) { @SuppressWarnings («не отмечено») T результат = (T)e.value; вернуть результат; } } вернуть setInitialValue(); }
Вышеупомянутое — это хранилище объектов и получение Java ThreadLocal. Главное — освоить использование set. Если вы недостаточно владеете этим методом, вам следует больше практиковаться после занятий.