ClassLoader-线程上下文类加载器 博客分类: java-jvm&性能&原理 classloader
程序员文章站
2024-03-16 17:19:22
...
线程上下文类加载器 :http://blog.csdn.net/zhoudaxia/article/details/35897057
线程上下文类加载器(context class loader)是从 JDK 1.2 开始引入的。类 java.lang.Thread中的方法 getContextClassLoader()和 setContextClassLoader(ClassLoader cl)用来获取和设置线程的上下文类加载器。如果没有通过 setContextClassLoader(ClassLoader cl)方法进行设置的话,线程将继承其父线程的上下文类加载器。ava 应用运行的初始线程的上下文类加载器是系统类加载器。在线程中运行的代码可以通过此类加载器来加载类和资源。
线程上下文类加载器(context class loader)是从 JDK 1.2 开始引入的。类 java.lang.Thread中的方法 getContextClassLoader()和 setContextClassLoader(ClassLoader cl)用来获取和设置线程的上下文类加载器。如果没有通过 setContextClassLoader(ClassLoader cl)方法进行设置的话,线程将继承其父线程的上下文类加载器。ava 应用运行的初始线程的上下文类加载器是系统类加载器。在线程中运行的代码可以通过此类加载器来加载类和资源。
/** * @author xinchun.wang @email: 532002108@qq.com * @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()); } }