
Вопрос сохранности объектов всегда волновал нас при проведении программных исследований. Такая же операция существует и в 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. Если вы недостаточно владеете этим методом, вам следует больше практиковаться после занятий.