`
bofang
  • 浏览: 126517 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Thread类为什么有contextClassLoader

阅读更多

Java的类委派加载机制是一个漂亮的方案,但是并不完美。如果单纯利用这种机制,那么web应用就无法满足。

 

 

jetty的ContextHandler.hadle方法设置当前线程的contextClassLoader

 

 

 

// Set the classloader
                if (_classLoader!=null)
                {
                    current_thread=Thread.currentThread();
                    old_classloader=current_thread.getContextClassLoader();
                    current_thread.setContextClassLoader(_classLoader);
                }

 

 

我觉得这样做能让容器支持多个webapp。

 

我认为这是一种比较hack的做法,这样就在一定程度上打破了必须按照委派加载。

分享到:
评论
1 楼 xugangqiang 2013-07-18  
对contextClassaLoader, 能谈的更深一点吗?我的理解是,thread的contextClassLoader是用来装载这个thread所用到的那些还未装载的类的classLoader, setContextClassLoader提供了一种机制,即在这里可以有一次改变classLoader的机会。这样的话,比如对websphere, 它可以用自己自定义的classLoader设置进去,来达到websphere它自己的一些目的,例如应用的隔离。我个人对这个理解比较粗浅,很可能说的不对,望谅解。

相关推荐

    thread thread thread thread

    thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread ...

    继承Thread类构造多线程实例

    一个简单的通过继承Thread类构造多线程实例,它的功能是模拟一个笼子内有20只鸟在里面移动,每个“鸟”是一个扩展的Thread类,它负责控制自身的移动。

    Java并发编程---Thread类

    Java并发编程---Thread类!!

    vb 多线程 实例(thread 类创建)

    通过 thread 类直接创建线程的 vb实例

    详解C++ thread用法总结

    (1)、get_id:获取线程ID,返回一个类型为std::thread::id的对象。 (2)、joinable:检查线程是否可被join。检查thread对象是否标识一个活动(active)的可行性线程。缺省构造的thread对象、已经完成join的thread对象、...

    【java学习记录】11.多线程实现阶乘计算(Thread类和Runnable接口)

    分别用Thread类和Runnable接口实现的阶乘的计算过程及结果的显示(本来一开始设置的不要积分,不知道为啥变得需要积分了,故此调整一下)

    boost—thread教程

    首先看看boost::thread的构造函数吧,boost::thread有两个构造函数: (1)thread():构造一个表示当前执行线程的线程对象; (2)explicit thread(const boost::function0& threadfunc): boost::function0可以...

    AT32F435移植THreadX;AT32F437移植THreadX,移植最新版THreadX

    STM32可以有STM32CubeMX轻松移植THreadX,雅特力从AT43F435/437系列开始不能完全兼容STM32,用不了THreadX了。 本移植采用最新(截至2023年3月12号)的AT32F435/437固件库V2.1.2,THreadX版本V6.2.1;依照雅特力官方...

    JAVA中使用Thread类和Runnable接口创建多线程

    在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。

    Scheduling, Thread Context, and IRQL

    This paper presents information about how thread scheduling, thread context, and a processor’s current interrupt request level (IRQL) affect the operation of kernel-mode drivers for the Microsoft® ...

    线程创建,线程等待与清除,thread_clean.c,thread_create.c,thread_create.c,thread_exit_struct.c,thread_id.c,thread_int.c, thread_join.c, thread_join.c, thread_string.c, thread_struct.c

    线程创建,线程等待与清除,thread_clean.c,thread_create.c,thread_create.c,thread_exit_struct.c,thread_id.c,thread_int.c, thread_join.c, thread_join.c, thread_string.c, thread_struct.c

    关于C#中Thread.Join()的一点理解

    什么是the calling thread?  2.什么是a thread?  首先来看一下有关的概念: 我们执行一个.exe文件实际上是开启了一个进程,同时开启了至少一个线程,  但是真正干活的是线程,好比一个Team有好几个人,但是...

    使用继承Thread类的方式定义两个线程,.txt

    请使用继承Thread类的方式定义两个线程,一个线程可以计算1--100所有数字的累加和,另一个线程可以计算1--1000所有数字的累加和,每个线程计算完毕后各自打印计算结果,格式例如:”xxx线程计算1--100的累加和,结果...

    Thread实现多线程

    继承Thread类: 1必须重写run 方法:里面放置的实际的线程体 2 启动线程: 3创建Thread对象 4调用Thread对象的start 方法启动线程

    java Thread

    创建一个站台类Station,继承Thread,重写run方法,在run方法里面执行售票操作!售票要使用同步锁:即有一个站台卖这张票时,其他站台要等这张票卖完! 2.创建主方法调用类 里面有源码,导入myeclipse执行

    Thread类获取时间.txt

    Thread类

    c# Thread类的用法详解

    Thread类相对于线程池中的线程,使用者有更多的控制权。该类允许创建前台线程,设置线程优先级等。Thread类的构造函数重载为接受ThreadStart和ParameterizedThreadStart类型的委托参数。 1、给线程传递数据  给线程...

    这是一个线程类(Thread

    Thread对初学者有很大的帮助,有线程(Thread)的继承,Runner的实现的区别。

    rt-thread源码

    RT-Thread实时操作系统是一个分层的操作系统,它包括了: 底层移植、驱动层,这层与硬件密切相关,由Drivers和CPU移植相构成。 硬实时内核,这层是RT-Thread的核心,包括了内核系统中对象的实现,例如多线程及其...

    用C++实现的Thread类

    用C++实现的具有跨平台兼容性的Thread类,是按照JAVA中Thread类的用法设计的,使用非常方便。仅供学习参考

Global site tag (gtag.js) - Google Analytics