`

ClassLoader-线程上下文类加载器

阅读更多
线程上下文类加载器 :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 应用运行的初始线程的上下文类加载器是系统类加载器。在线程中运行的代码可以通过此类加载器来加载类和资源。

/**
 * @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());
	}
}

分享到:
评论

相关推荐

    classloader-playground, 一个简单的java依赖隔离容器类.zip

    此外,"classloader-playground"还可能包含对线程上下文类加载器(Thread Context ClassLoader)的理解和使用。线程上下文类加载器主要用于解决应用程序类加载问题,尤其是在服务提供者接口(SPI)中,允许用户...

    走出ClassLoader误区

    在Java中,有多种类加载器,包括系统类加载器、当前类加载器和线程上下文类加载器。系统类加载器,通常由`ClassLoader.getSystemClassLoader()`获取,主要负责加载启动应用时由classpath指定的类。由于它与JVM启动...

    浅析ClassLoader

    2. 应用场景:Spring框架中,线程上下文类加载器用于加载Bean定义等配置信息,实现灵活的依赖注入。 四、案例分析 文件`ContextClassLoaderTest`和`ContextClassLoaderTest2`可能是用来测试上下文类加载器的示例...

    深入探讨 Java 类加载器

    线程上下文类加载器(Thread Context ClassLoader)是一个特殊的角色,它允许在多线程环境中控制类的加载。每个线程都有一个与之关联的类加载器,可以通过Thread.currentThread().getContextClassLoader()获取。这在...

    Java类加载器学习总结.pdf

    除了这些基础的类加载器,Java还引入了**线程上下文类加载器(ContextClassLoader)**。每个线程都有一个与之关联的类加载器,可以通过`Thread.getContextClassLoader()`获取。线程上下文类加载器用于在多线程环境下...

    java classloader classpath 张孝祥

    5. `Thread.currentThread().getContextClassLoader().getResource("")`:获取当前线程上下文类加载器的根路径,如`file:/D/workspace/jbpmtest3/bin/`。 6. `ServletActionContext.getServletContext().getRealPath...

    java类加载器和核心机制.pdf

    线程上下文类加载器则允许在特定线程上下文中改变类加载器,以便加载特定的类。 服务器类加载原理则涉及到服务器如何管理类的加载以及OSGI(Open Service Gateway Initiative)的技术介绍。OSGI提供了一个运行时...

    Java类加载原理解析

    线程上下文类加载器(Thread Context ClassLoader)则是在特定线程中使用的类加载器,主要用于解决一些应用服务器中类加载的复杂问题,如J2EE容器中的类加载需求。 总的来说,理解Java类加载机制对于排查类加载错误...

    Understanding the Java ClassLoader.pdf

    然而,在多线程环境中,还需要注意线程上下文类加载器的正确设置,以避免类加载异常。 ### 适应Java 2的更新 为了使自定义类加载器兼容Java 2,开发者需要确保遵循双亲委派模型。这意味着在自定义类加载器中,应该...

    Java类加载.pdf

    当类的实例化需要时,JVM会遵循双亲委派模型进行类加载:首先,尝试由当前线程的上下文类加载器加载;如果找不到,再由其父类加载器加载,直到到达Bootstrap Classloader。这种模型保证了核心类库的唯一性,例如`...

    Java类加载原理解析文档

    本文将详细解析Java类加载原理,分为三篇文章进行阐述,分别是:Java类加载原理解析、插件环境下类加载原理解析和线程上下文类加载器。 首先,我们来了解Java虚拟机(JVM)的类加载器结构。JVM预定义了三种主要的类...

    探索JVM底层奥秘ClassLoader源码分析与案例讲解

    7. **线程上下文类加载器**:在多线程环境下,每个线程都关联有一个线程上下文类加载器,用于服务线程特有的类加载需求。 8. **类的卸载**:Java中类一旦被加载就很难被卸载,因为垃圾回收器不会回收Class对象,...

    深入理解Java类加载.docx

    此外,还可以自定义类加载器,比如线程上下文类加载器,用于满足特定加载需求。 在多线程环境下,类的初始化是线程安全的。当多个线程尝试初始化同一类时,只有一个线程会执行()方法,其他线程会被阻塞。这确保了类...

    Java类加载机制学习1

    线程上下文类加载器(Thread Context ClassLoader)是Java提供的一种机制,允许线程在运行时指定一个类加载器,确保类由同一个类加载器加载。这对于应用程序服务器和插件系统尤其有用,因为它允许组件使用自己的类...

Global site tag (gtag.js) - Google Analytics