在tomcat容器中,在使用EWS时,在jar包common-http-client.jar去和exchange server连接,它启动了一个线程名叫”MultiThreadedHttpConnectionManager cleanup“,然后所有的connection都是在这个线程上完成的,当undeploy这个模块时,这个线程确没有关闭,提示警告:appears to have started a thread named [MultiThreadedHttpConnectionManager cleanup] but has failed to stop it. This is very likely to create a memory leak.
所以需要关闭这个线程。
于是我在undeploy的时候添加一个监听,在接口ServletContextListener 中实现contextDestroyed方法。
1. 添加以下内容在web.xml
<listener> <listener-class>com.tsystems.showcase.calendar.listener.PortletUndeployListener</listener-class> </listener>
2. 新建类PortletUndeployListener 实现接口ServletContextListener .
public class PortletUndeployListener implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent arg0) { MultiThreadedHttpConnectionManager.shutdownAll(); } @Override public void contextInitialized(ServletContextEvent arg0) { // Do nothing. } }
相关推荐
1. 线程概述 2. 创建线程 2.1 线程函数 2.2 创建线程 3. 线程退出 4. 线程回收 4.1 线程函数 4.2 回收子线程数据 5. 线程分离 6. 其他线程函数 6.1 线程取消 6.2 线程 ID 比较
Delphi多线程DB组件接口特性创建可自动回收的Query对象池,通过指定接口调用线程中的Query处理数据库操作,当请求结束后自动释放外部引用; 简要说明: TParamItem 管理存储过程的参数; ...
在任何一个时间点上,线程是可结合的(joinable),或者是...在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。
poco的TCPServer框架,里面包含服务端和客户端代码,编译环境:VS2013 poco动态库:1.7.4完整版
QT线程及多线程全面解析,案例封装,浅显易懂,运用实例进行验证,多次应用到大型项目中。
应用程序必须运行完所有前台线程后才能退出; 对于后台线程,应用程序可以不考虑其是否已运行完毕而直接退出,所有后台线程在应用程序退出时都会自动结束。
二、初始化/回收互斥锁 40 三、对互斥量加减锁 40 四、互斥锁属性 45 五、应用互斥量需要注意的几点 48 第五章 条件变量 48 一、什么是条件变量 48 二、条件变量函数 48 三、条件变量属性 54 四、条件变量与互斥锁、...
PHP线程的内存回收问题_.docx
2、撤销进程,对资源进行回收。 3、进程切换,它需要保留当前进程的CPU环境和设置新选中进程的CPU环境。 为此需要花费不少处理时间。正因为进程拥有资源,所以在并发执行进程的时候, 在创建、撤销和切换,系统...
MFC多线程开发示例
JVM负责装载class文件并执行,因此,首先是JDK如何将Java代码编译为class文件、如何...JVM提供了多线程支持,对于分布式Java应用而言,通常要借助线程来实现高并发,JVM中线程资源如何同步的机制及线程之间交互的机制。
这不是智能指针!这是内存集中管理的GC器,基于RAII。AutoGC简单的C++垃圾回收器,基于c++11标准的多线程。这是源码和lib+示例。
创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 • 重用之前的线程 • 适合执行许多短期异步任务的程序。 • 调用 execute() 将重用以前构造的线程 • 如果没有...
垃圾回收器与JVM性能监控工具介绍垃圾回收器与JVM性能监控工具介绍ppt。
线程的 创建 回收 windows linux系统都可使用
下面你可以很容易想到,回收分为2种情况:主动回收和被动回收(当然,这是我自己的理解,微软可不是这么说的),主动回收就是,你去监视那个线程,并且等待,当异步方法完成了,就把异步线程回收,焦点回归主线程,...
thread线程的基本入门文档 适合入门学习 讲的比较广 深度说的不多
易语言超酷回收站源码,超酷回收站,屏幕分辨率被改变,系统关机请求,刷新显示回收站窗口,线程_清空回收站,取回收站状态,清空回收站,实时拖动窗口_,清空回收站_,更新回收站图标_,回收站询问_
最新版本, 稳定,加入了线程回收处理. 修改下就可以商业化了.
内容索引:Delphi源码,数据库应用,多线程 Delphi多线程DB组件测试程序,利用接口特性创建可自动回收的Query对象池,通过指定接口调用线程中的Query处理数据库操作,当请求结束后自动释放外部引用; 有如下特性...