`

线程的回收

 
阅读更多

在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.
    }
}

 

分享到:
评论

相关推荐

    基于C语言实现的C语言线程库(含源码)

    1. 线程概述 2. 创建线程 2.1 线程函数 2.2 创建线程 3. 线程退出 4. 线程回收 4.1 线程函数 4.2 回收子线程数据 5. 线程分离 6. 其他线程函数 6.1 线程取消 6.2 线程 ID 比较

    Delphi多线程DB回收Query对象池.rar

    Delphi多线程DB组件接口特性创建可自动回收的Query对象池,通过指定接口调用线程中的Query处理数据库操作,当请求结束后自动释放外部引用; 简要说明:    TParamItem  管理存储过程的参数;    ...

    分离状态创建线程

    在任何一个时间点上,线程是可结合的(joinable),或者是...在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。

    Poco:TCPServer框架

    poco的TCPServer框架,里面包含服务端和客户端代码,编译环境:VS2013 poco动态库:1.7.4完整版

    QT线程及多线程

    QT线程及多线程全面解析,案例封装,浅显易懂,运用实例进行验证,多次应用到大型项目中。

    前台线程后台线程区别实验

    应用程序必须运行完所有前台线程后才能退出; 对于后台线程,应用程序可以不考虑其是否已运行完毕而直接退出,所有后台线程在应用程序退出时都会自动结束。

    linux多线程编程

    二、初始化/回收互斥锁 40 三、对互斥量加减锁 40 四、互斥锁属性 45 五、应用互斥量需要注意的几点 48 第五章 条件变量 48 一、什么是条件变量 48 二、条件变量函数 48 三、条件变量属性 54 四、条件变量与互斥锁、...

    PHP线程的内存回收问题_.docx

    PHP线程的内存回收问题_.docx

    Java线程详解.ppt

    2、撤销进程,对资源进行回收。 3、进程切换,它需要保留当前进程的CPU环境和设置新选中进程的CPU环境。 为此需要花费不少处理时间。正因为进程拥有资源,所以在并发执行进程的时候, 在创建、撤销和切换,系统...

    MFC 多线程

    MFC多线程开发示例

    JVM中编译Class、内存回收、多线程原理和使用

    JVM负责装载class文件并执行,因此,首先是JDK如何将Java代码编译为class文件、如何...JVM提供了多线程支持,对于分布式Java应用而言,通常要借助线程来实现高并发,JVM中线程资源如何同步的机制及线程之间交互的机制。

    AutoGC简单的C++垃圾回收器,基于多线程。

    这不是智能指针!这是内存集中管理的GC器,基于RAII。AutoGC简单的C++垃圾回收器,基于c++11标准的多线程。这是源码和lib+示例。

    线程学习.docx

    创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 • 重用之前的线程 • 适合执行许多短期异步任务的程序。 • 调用 execute() 将重用以前构造的线程 • 如果没有...

    垃圾回收器与JVM性能监控工具介绍以及java多线程安全性介绍ppt

    垃圾回收器与JVM性能监控工具介绍垃圾回收器与JVM性能监控工具介绍ppt。

    线程创建的封装 Windows,Linux

    线程的 创建 回收 windows linux系统都可使用

    C#异步调用的好处和方法分享

    下面你可以很容易想到,回收分为2种情况:主动回收和被动回收(当然,这是我自己的理解,微软可不是这么说的),主动回收就是,你去监视那个线程,并且等待,当异步方法完成了,就把异步线程回收,焦点回归主线程,...

    thread线程的基本入门文档

    thread线程的基本入门文档 适合入门学习 讲的比较广 深度说的不多

    易语言超酷回收站

    易语言超酷回收站源码,超酷回收站,屏幕分辨率被改变,系统关机请求,刷新显示回收站窗口,线程_清空回收站,取回收站状态,清空回收站,实时拖动窗口_,清空回收站_,更新回收站图标_,回收站询问_

    奥盾磁盘还原 2.0

    最新版本, 稳定,加入了线程回收处理. 修改下就可以商业化了.

    Delphi利用多线程DB组件接口自动回收Query对象池

    内容索引:Delphi源码,数据库应用,多线程 Delphi多线程DB组件测试程序,利用接口特性创建可自动回收的Query对象池,通过指定接口调用线程中的Query处理数据库操作,当请求结束后自动释放外部引用;    有如下特性...

Global site tag (gtag.js) - Google Analytics