1.为什么需要线程上下文类加载器
根据Thread类的文档你会发现线程上下文方法是从JDK1.2开始引人的,getContextClassLoader() 和setContextClassLoader(ClassLoader cl) 分别用于获取和设置当前线程的上下文类加载器,如果当前线程没有设置上下文类加载器,那么它将和父线程保持同样的类加载器。站在开发者的角度,其他线程都是由Main线程,也就是main函数所在的线程派生的,它是其他线程的父线程或者祖先线程。下面进行线程上下文类的简单测试,代码如所示。
public class MainThreadClassLoader {
public static void main(String[] args) {
System.out.println(Thread.currentThread().getContextClassLoader());
}
}