web应用程序开发注意私自启动线程的问题
我们知道静态变量是ClassLoader级别的,如果Web应用程序停止掉,这些静态变量也会从JVM中清除.但是线程则是JVM级别的,如果用户在Web应用中启动一个线程,这个线程的生命周期并不会和Web应用程序操持同步.也就是,即使停止了Web应用,这个线程还是活跃的.正是因为这个很隐晦的问题,所以很多有经验的开发不太赞成在Web程序中私自启动线程.举例:
public class Test implements ServletContextListener {
private Timer timer;
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("Web应用程序启动关闭...");
// timer.cancel();
}
public void contextInitialized(ServletContextEvent arg0) {
System.out.println("Web应用程序启动...");
timer = new Timer();
TimerTask task = new SimpleTimerTask();
timer.schedule(task, 1000L, 5000L);
}
}
class SimpleTimerTask extends TimerTask {
private int count;
public void run() {
System.out.println((++count)+"execute task..."+(new Date()));
}
}
有web.xml文件中配置:
<listener>
<listener-class>
com.javaeye.lighter.Test
</listener-class>
</listener>
假如这一个时候登录Tomcat的后台,将对应的Web应用关闭.这时候,我们将在Tomcat的控制台看到web应用已经关闭了,但TImer任务还继续地执行.
分享到:
相关推荐
例如,开发者可以使用它来备份自己开发的应用程序,或者分析竞品应用的代码和资源。对于普通用户而言,它可以帮助用户在更换手机时,轻松地备份和迁移应用程序,或者在需要的时候分享应用程序给他人。 值得注意的是...
通过这些分析,可以发现应用程序是否执行了未经授权的行为,如私自发送短信、访问个人信息、下载额外文件等。 文章最后也提到了动态检测技术的现状与发展趋势。目前动态检测技术仍在不断发展之中,新的技术如沙箱...
1. **需求分析**:评估参赛者对Web应用开发所需的需求分析能力。这包括但不限于绘制流程图、时序图和草图等。 2. **功能编码**:基于产品原型进行实际编程,考察学生对HTML5、CSS3、JavaScript等Web技术的掌握程度。...
4. **文档控制**:所有文件均需受控,不得私自复印,修订有记录,确保信息的准确性和一致性。 5. **评审和验证**:设计评审涉及标准符合性、功能、技术参数等多个方面,验证则包括样机检测和试产总结,确保产品满足...
### 2024年广西职业院校技能大赛高职组《嵌入式系统应用开发》赛项解析 #### 一、赛事概述 2024年广西职业院校技能大赛高职组《嵌入式系统应用开发》赛项是面向广西区内职业院校高职学生的专业技能竞赛活动。该赛项...
在具体实验内容方面,学生首先需要熟悉Visual C#开发环境,包括了解Visual C#控制台应用程序和窗体应用程序的编写过程。实验内容可能包括创建控制台应用程序以输出特定字符串,以及创建窗体应用程序并按照教材要求...
【应用系统开发及维护管理制度】 该制度主要针对的是单位内部计算机软件系统的管理,旨在规范从采购、开发到维护的全过程,确保信息系统的稳定运行和安全。以下是对制度内容的详细解读: 1. **第一章总则**:明确...
《ISO9001设计开发控制程序文件》是企业遵循国际质量管理体系标准ISO9001,用于规范新产品设计和开发流程的重要文档。该程序旨在确保新产品设计开发过程的有序进行,满足客户需求,并保证产品的质量和市场竞争力。 ...
ssm指的是Spring + SpringMVC + MyBatis的组合,这是一种常见的Java Web开发框架,被广泛用于构建企业级的Web应用,其中Spring负责业务对象的管理,SpringMVC用于处理Web层的请求,MyBatis则是数据持久层框架,简化...
本教案旨在通过一系列精心设计的活动,向大班孩子们传达私自离园的严重后果,提升他们的安全意识,并让他们学会在幼儿园的环境下正确处理问题。 首先,活动以观看教学挂图导入,通过孩子们对小朋友行为的观察和讨论...
- **注意问题**:开发过程中应严格遵循U8提供的插件开发规范,尽量使用相同的开发语言以保持一致性,并确保插件操作与U8的数据库操作在同一事务内完成。 - **禁止行为**:避免直接修改U8的系统数据表、视图或存储...
1. Superboot4412更新:在硬件启动引导程序的更新中,解决了eMMC大小显示不正确的问题,并引入了智能分区功能以优化Android系统下Data分区的可用空间。此外,还引入了三星推荐的TrustZone安全模式,为系统安全提供了...
### 我国拟规定任何单位个人不得私自开拆他人邮件 #### 法律背景与重要性 随着社会的发展和技术的进步,个人信息安全和个人隐私保护成为公众日益关注的话题。在我国,为了加强公民通信自由和通信秘密的保护,全国...
根据提供的信息,我们可以得到以下几点知识点: 首先,“django Pettingpets(爱抚宠物)小程序”是一个以宠物为主题的小程序项目,它使用了Python...用户需要注意版权问题,并且要正确理解项目所使用的编程语言与框架。
在下载和使用紫色微信记账小程序页面源码包时,用户需要注意源码的版权问题,遵守相关法律法规和开发者的授权协议。未经许可,用户不应私自传播或用于商业用途,以免造成不必要的法律纠纷。同时,用户在学习和使用...
海思Linux开发环境 用户指南涵盖了在海思平台进行Linux开发的相关知识,内容涉及开发环境搭建、Linux内核编译、根文件系统构建以及应用程序开发等方面。文档版本为01,发布日期为2014年10月30日,由深圳市海思半导体...
5. **协议变更**:协议变更需经所有合作方一致同意,私自变更或转让协议权益视为无效,强调了协议的稳定性。 6. **禁止行为**:禁止以合作团体名义未经授权进行业务活动,防止滥用团队信誉;同时,保护商业秘密不被...
- **实际应用**:例如,如果C#开发的应用程序在某些特定情况下出现轻微的性能下降,但整体功能仍然可用,那么企业可以期待获得支持以解决问题。 2. **使用和实施的支持**:乙方将提供有关许可软件使用和实施方面的...
在实施IPSG时,需要考虑一些配置注意事项。比如,不是所有的交换机型号和软件版本都支持IPSG功能,例如文档中提到的V100R006C05版本的S2700-SI就不支持IPSG。此外,如果在某些华为设备上启用了IPv4报文的三层硬件...