
A questão da preservação de objetos sempre foi uma preocupação para nós quando realizamos pesquisas de programas. A mesma operação também existe no ThreadLocal, podemos armazenar e recuperar objetos. Isso requer um certo entendimento de ThreadLocal e o uso de seu método set. A seguir explicaremos as etapas completas da operação de armazenamento e aquisição do ThreadLocal e compartilharemos o conteúdo específico com você.
1. Método set de ThreadLocal
conjunto de void público (valor T) {
Tópico t = Thread.currentThread();
Mapa ThreadLocalMap = getMap(t);
if (mapa! = nulo)
map.set(este, valor);
outro
createMap(t, valor);
} Através do método set de ThreadLocal, podemos ver que na estrutura <k, v> de ThreadLocalMap, a chave armazena o próprio ThreadLocal, e o valor é o valor real armazenado. Em outras palavras, uma cópia da variável copiada pelo. ThreadLocal atual é armazenado no ThreadLocalMap .
2. O próprio ThreadLocal não armazena valores. Em uso, ThreadLocal é usado como uma chave para obter o valor de ThreadLocalMap. Isso também pode ser visto no método get de ThreadLocal:
público T get() {
Tópico t = Thread.currentThread();
Mapa ThreadLocalMap = getMap(t);
if (mapa! = nulo) {
ThreadLocalMap.Entry e = map.getEntry(this);
if (e! = nulo) {
@SuppressWarnings("desmarcado")
Resultado T = (T)e.valor;
resultado de retorno;
}
}
return setInitialValue();
}O acima é o armazenamento e aquisição de objetos de java ThreadLocal. A chave é dominar o uso do conjunto. Se você não for suficientemente proficiente neste método, deverá praticar mais depois da aula.