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.