27- hilo clase de contexto loader Análisis e Implementación

La clase Thread contextual de carga de Análisis e Implementación

Ejemplo uno:
public class MyTest24 {
    public static void main(String[] args) {
        System.out.println(Thread.currentThread().getContextClassLoader()); //这个当前main线程
        System.out.println(Thread.class.getClassLoader());  //Thread类位于rt包中
    }
}
运行结果:
   sun.misc.Launcher$AppClassLoader@18b4aac2
   null
cargador de clases de corriente (cargador de clases actual)
  • Cada clase hará uso de su propio cargador de clases (es decir, propia clase cargador del cargador) para cargar otras clases (referirse a la clase dependiente),
    por ejemplo: si ClassX citado clase, entonces el cargador de clases ClassX en la parte posterior loader con clase (siempre que aún no ha cargado con clase)
contexto hilo cargador de clases (Contexto cargador de clases)
  • Tema clase de contexto cargador de JDK 1.2 desde el inicio de la introducción, el getContextClassLoader clase Thread () y setContextClassLoader (cargador de clases c1), respectivamente, para obtener y establecer cargador de clases de contexto.
  • Si no se establece a través setContextClassLoader (cargador de clases C1), entonces el hilo heredará el contexto de los padres hilo de cargador de clases. El hilo de Java contexto de aplicación en tiempo de ejecución cargador inicial es el cargador de clases del sistema . Código que se ejecuta en el hilo puede ser cargado por la clase y recursos cargador de clases.
  • Enhebrar contextual de carga de importancia:
    • SPI (Interfaz de proveedor de servicio)
    • [ClassLoader padre puede utilizar el Thread.currentThread hilo actual (). GetContextClassLoader cargador de clases a cabo la carga) (] clase. ** Esto cambia la situación de los padres cargador de clases de cargador de clases de cargador de clases no puede utilizar niño u otra relación padre-hijo clase no se carga directamente, ** que está cambiando el modelo de delegación de los padres.
  • cargador de clases de contexto hilo es el hilo actual ClassLoader actual
    • En el modelo de delegación padre, un tipo de carga inferior, es decir, el cargador de clase superior inferior a la carga puesta en servicio. Pero para el SPI para alguna de las interfaces es una librería base Java proporciona, y bibliotecas del núcleo de Java iniciando el cargador de clases de carga, e implementar estas interfaces, pero a partir de un paquete diferente frasco (vendedores), Java iniciar cargador de clases son otras fuentes hace paquete frasco cargador, así que los padres confían el modelo tradicional no puede cumplir con los requisitos de SPI. A través del conjunto de roscas en el contexto cargador de clases actual, un contexto se puede proporcionar al cargador de clases para la carga implementar clase de interfaz.
Publicado 25 artículos originales · ganado elogios 0 · Vistas 1446

Supongo que te gusta

Origin blog.csdn.net/qq_40574305/article/details/104793573
Recomendado
Clasificación