关闭tomcat中web服务 多线程的关闭

1 web项目, 关闭tomcat,里面的多线程不关闭

private static ScheduledExecutorService service= Executors.newSingleThreadScheduledExecutor(new ThreadFactory() { @Override public Thread newThread(Runnable r) { Thread t=new Thread(r, "Checker"); return t; } });

2 解决办法 参考 http://www.cnblogs.com/eczhou/archive/2012/03/26/2418201.html 2.1 web.xml添加 <listener> <listener-class>com.****.web.Listener</listener-class> </listener>

2.2

public class Listener implements ServletContextListener{

@Override
public void contextDestroyed(ServletContextEvent arg0) {   
	System.out.println("Listener: destroy================");
	
	try{
		XXXXcontainer.destroy();
	}catch (Exception e) {
		System.out.println("error:"+e.getMessage());

// logger.error(e.getMessage(),e); System.exit(1); } }

@Override
public void contextInitialized(ServletContextEvent arg0){
	System.out.println("Listener: init================");
}

}

3

使用Executors建立后台线程并执行一些多线程操作时,Executors会使用相对应的threadFactory来对 runnable建立新的thread,所以使用默认的threadFactory时就会出问题。默认的ThreadFactory强制性的将新创建的线程设置为非守护状态,

转载于:https://my.oschina.net/u/257088/blog/616348

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值