使用 WebSphere Application Server 开发高性能 J2EE 线程
2009-09-30 00:00:00 来源:WEB开发网WASThreadFactory
WASThreadFactory 是 ThreadFactory 的实现。它使用 WASThreadFactoryBase基类来支持使用 J2SE 5 和 ThreadFactory 的 dl.concurrent.util 版本的单个实现(图 5)。
图 5. WASThreadFactory 类关系图
WASThreadFactory 接受 WorkManager 作为构造函数的参数,并使用它创建 EventSource 并为 WorkManager 注册侦听器代理。当从 WASThreadFactory 请求线程时,将使用 WorkManager 创建线程,但是该线程将包含创建 WASThreadFactory 实例的组件的 J2EE 上下文。这也称为单上下文的线程池。
单上下文和多上下文的线程池
在使用自定义线程池(如 ThreadPoolExecutor)时,可能不需要在单个 J2EE 上下文中运行工作。例如,可能需要传播提交程序的安全上下文。
在这种情况下,可以使用识别 J2EE 上下文的执行程序 (ContextExecutor),以便在执行之前将当前 J2EE 上下文附加到可运行线程。池中的每个工作线程都使用 WASThreadFactory 创建程序的 J2EE 上下文进行填充,但是当使用 ContextExecutor 时,可运行线程首先将提交程序的 J2EE 上下文应用到线程,然后在完成时删除它。
使用同一 ThreadPoolExecutor 直接将工作提交到可以利用缺省 J2EE 上下文的池。使用 ContextExecutor 包装程序将工作提交到 ThreadPoolExecutor,但要带有提交程序的上下文。
图 6. 带有缺省的和多上下文的自定义线程池
Tags:使用 WebSphere Application
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接