Tomcat管理自定义的线程的关闭与启动

如果希望在tomcat服务器启动时启动自己定义的线程如webgame的socket监听线程,关闭tomcat服务器是关闭这个线程。我们就需要自定一个Servlet或者是Listener来管理自己的线程。
管理的方式主要是在Servlet的init方法中启动自定义的线程,而在destroy方法中进行关闭。
如果使用Listener来管理的话就需要分别在contextInitialized与contextDestroyed方法中来处理自定义线程的启动与关闭。
下面我们通过具体代码来讲解具体的应用,我的demo使用的是Listener方式管理。
1.自定义一个Listener类。

public class ServerSocketListener implements ServletContextListener {
private ServerMain s;

public void contextInitialized(ServletContextEvent event) {
s = new ServerMain();
s.startServer();
}
//tomcat关闭时,关闭线程,释放端口
public void contextDestroyed(ServletContextEvent event) {
s.stopServer();//停止线程
System.exit(0);//关闭当前的jvm
}
}

2.在web.xml中配置这个监听。

Socket服务随web启动而启动
com.eunut.servlet.ServerSocketListener


就这样就可以通过tomcat的启动与关闭来控制你自定的线程随着应用服务器的操作味儿关闭或启动。

Tags: ,

发表评论

电子邮件地址不会被公开。 必填项已用*标注