web中启动了一个线程,但发现每次更新类,即重启项目后,都会多出一个线程来,怎么能让线程在项目重启时关闭线程呢?

-飞得更高- 2008-09-22 08:39:16
此功能是一个项目中的小功能,就是启动了一个线程,监听一个端口,然后分析数据,存入数据库。
但每次重启项目都会生成新的线程~~于是数据库中会有多条重复数据。

我在网上查到可以配置一个listener在contextInitialized中启动线程,然后在contextDestroyed中停止线程。
我照文章所教,配置好监听,在contextInitialized使用run方法启动线程,然后在contextDestroyed中使用destory停止线程,就简单的几句代码,没有多余语句。但重启WEB项目仍然会启动多个线程,不知道会是哪个环节有问题??

是不应该用destory来停止线程?还是要用别的方式来停止?
...全文
198 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZXEOC 2008-09-23
  • 打赏
  • 举报
回复
你用stop方法试试
zhanghua4109 2008-09-23
  • 打赏
  • 举报
回复
把代码贴出来,大家帮你看看.
-飞得更高- 2008-09-23
  • 打赏
  • 举报
回复
我在线程里加了一个boolean的静态变量,来控制线程的停止,
在contextDestroyed中把这个变量设为设为false来终止while循环,
这样线程中的while循环算是终止,数据算没有重复的,
但不知道这样来实现行不行~~这样的线程到底如何来停止~~

我再试试楼上说的stop试试~~

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧