La cuestión de la preservación de objetos siempre ha sido una preocupación para nosotros cuando realizamos investigaciones de programas. La misma operación también existe en ThreadLocal, podemos almacenar y recuperar objetos. Esto requiere cierta comprensión de ThreadLocal y el uso de su método set. A continuación, explicaremos los pasos operativos completos del almacenamiento y adquisición de ThreadLocal y compartiremos el contenido específico con usted.
1. Método establecido de ThreadLocal
conjunto de vacío público (valor T) { Hilo t = Thread.currentThread(); Mapa ThreadLocalMap = getMap(t); si (mapa! = nulo) map.set(esto, valor); demás crearMapa(t, valor); }
A través del método set de ThreadLocal, podemos ver que en la estructura <k, v> de ThreadLocalMap, la clave almacena el ThreadLocal en sí y el valor es el valor almacenado real. En otras palabras, una copia de la variable copiada por el. ThreadLocal actual se almacena en ThreadLocalMap.
2. ThreadLocal en sí no almacena valores. En uso, ThreadLocal se utiliza como clave para obtener el valor de ThreadLocalMap. Esto también se puede ver en el método get de ThreadLocal:
público T get() { Hilo t = Thread.currentThread(); Mapa ThreadLocalMap = getMap(t); si (mapa! = nulo) { ThreadLocalMap.Entry e = map.getEntry(esto); si (e! = nulo) { @SuppressWarnings("sin marcar") T resultado = (T)e.valor; resultado de devolución; } } devolver setInitialValue(); }
Lo anterior es el almacenamiento y adquisición de objetos de Java ThreadLocal. La clave es dominar el uso de set. Si no dominas lo suficiente este método, debes practicar más después de clase.