Maison >Java >javaDidacticiel >Comment stocker et obtenir des objets Java ThreadLocal

Comment stocker et obtenir des objets Java ThreadLocal

PHPz
PHPzavant
2023-04-24 18:13:171314parcourir

1. Méthode set de ThreadLocal

    public void set(T value) {
        Thread t = Thread.currentThread();
        ThreadLocalMap map = getMap(t);
        if (map != null)
            map.set(this, value);
        else
            createMap(t, value);
    }

La méthode set de ThreadLocal montre que dans la structure de ThreadLocal, la clé stocke le ThreadLocal lui-même et la valeur est la valeur réelle stockée, c'est-à-dire une copie de la variable copiée par le ThreadLocal actuel est stockée dans ThreadLocalMap.

2. ThreadLocal lui-même ne stocke pas les valeurs. En cours d'utilisation, ThreadLocal est utilisé comme clé pour obtenir la valeur de ThreadLocalMap. Cela peut également être vu à partir de la méthode get de ThreadLocal :

    public T get() {
        Thread t = Thread.currentThread();
        ThreadLocalMap map = getMap(t);
        if (map != null) {
            ThreadLocalMap.Entry e = map.getEntry(this);
            if (e != null) {
                @SuppressWarnings("unchecked")
                T result = (T)e.value;
                return result;
            }
        }
        return setInitialValue();
}
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer