线程上下文类加载器(context class loader)是从 JDK 1.2 开始引入的。类 java.lang.Thread中的方法 getContextClassLoader()和 setContextClassLoader(ClassLoader cl)用来获取和设置线程的上下文类加载器。 如果没有通过 setContextClassLoader(ClassLoader cl)方法进行设置的话,线程将继承其父线程的上下文类加载器。ava 应用运行的初始线程的上下文类加载器是系统类加载器。在线程中运行的代码可以通过此类加载器来加载类和资源。
/** * @author xinchun.wang @email: [email protected] * @createTime 2015-4-22 下午2:43:39 */ public class ContextClassLoader { @Test public void testNewThreadContxtClassLoader(){ Thread t2 = new Thread(); //输出:sun.misc.Launcher$AppClassLoader@43be2d65 新线程没有设置ContextClassLoader,将继承其父线程的上下文类加载器 System.out.println(t2.getContextClassLoader()); //输出:null 因为Thread.class 是引导类加载加载的,所以其父类加载器 是为空 System.out.println(t2.getClass().getClassLoader()); } }