`
lighter
  • 浏览: 504608 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

web应用程序开发须注意私自启动线程的问题

阅读更多
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任务还继续地执行.

分享到:
评论

相关推荐

    ​‌APK提取器​-将安卓手机中已安装的应用程序提取为APK文件

    例如,开发者可以使用它来备份自己开发的应用程序,或者分析竞品应用的代码和资源。对于普通用户而言,它可以帮助用户在更换手机时,轻松地备份和迁移应用程序,或者在需要的时候分享应用程序给他人。 值得注意的是...

    基于JDWP的Android应用程序恶意行为检测研究.pdf

    通过这些分析,可以发现应用程序是否执行了未经授权的行为,如私自发送短信、访问个人信息、下载额外文件等。 文章最后也提到了动态检测技术的现状与发展趋势。目前动态检测技术仍在不断发展之中,新的技术如沙箱...

    2024年河北省职业院校学生技能大赛web技术赛项规程.pdf

    1. **需求分析**:评估参赛者对Web应用开发所需的需求分析能力。这包括但不限于绘制流程图、时序图和草图等。 2. **功能编码**:基于产品原型进行实际编程,考察学生对HTML5、CSS3、JavaScript等Web技术的掌握程度。...

    ISO9001-设计开发控制程序.pdf

    4. **文档控制**:所有文件均需受控,不得私自复印,修订有记录,确保信息的准确性和一致性。 5. **评审和验证**:设计评审涉及标准符合性、功能、技术参数等多个方面,验证则包括样机检测和试产总结,确保产品满足...

    2024年广西职业院校技能大赛 高职组《嵌入式系统应用开发》 赛项.pdf

    ### 2024年广西职业院校技能大赛高职组《嵌入式系统应用开发》赛项解析 #### 一、赛事概述 2024年广西职业院校技能大赛高职组《嵌入式系统应用开发》赛项是面向广西区内职业院校高职学生的专业技能竞赛活动。该赛项...

    《C#程序设计》上机实验报告.docx

    在具体实验内容方面,学生首先需要熟悉Visual C#开发环境,包括了解Visual C#控制台应用程序和窗体应用程序的编写过程。实验内容可能包括创建控制台应用程序以输出特定字符串,以及创建窗体应用程序并按照教材要求...

    应用系统开发及维护管理制度 (2).pdf

    【应用系统开发及维护管理制度】 该制度主要针对的是单位内部计算机软件系统的管理,旨在规范从采购、开发到维护的全过程,确保信息系统的稳定运行和安全。以下是对制度内容的详细解读: 1. **第一章总则**:明确...

    ISO9001-设计开发控制程序文件.doc

    《ISO9001设计开发控制程序文件》是企业遵循国际质量管理体系标准ISO9001,用于规范新产品设计和开发流程的重要文档。该程序旨在确保新产品设计开发过程的有序进行,满足客户需求,并保证产品的质量和市场竞争力。 ...

    weixin153实验室管理微信小程序+ssm.rar

    ssm指的是Spring + SpringMVC + MyBatis的组合,这是一种常见的Java Web开发框架,被广泛用于构建企业级的Web应用,其中Spring负责业务对象的管理,SpringMVC用于处理Web层的请求,MyBatis则是数据持久层框架,简化...

    大班安全教案-《不私自离园》.docx

    本教案旨在通过一系列精心设计的活动,向大班孩子们传达私自离园的严重后果,提升他们的安全意识,并让他们学会在幼儿园的环境下正确处理问题。 首先,活动以观看教学挂图导入,通过孩子们对小朋友行为的观察和讨论...

    U8二次开发规范

    - **注意问题**:开发过程中应严格遵循U8提供的插件开发规范,尽量使用相同的开发语言以保持一致性,并确保插件操作与U8的数据库操作在同一事务内完成。 - **禁止行为**:避免直接修改U8的系统数据表、视图或存储...

    Tiny4412中文用户手册

    1. Superboot4412更新:在硬件启动引导程序的更新中,解决了eMMC大小显示不正确的问题,并引入了智能分区功能以优化Android系统下Data分区的可用空间。此外,还引入了三星推荐的TrustZone安全模式,为系统安全提供了...

    我国拟规定任何单位个人不得私自开拆他人邮件

    ### 我国拟规定任何单位个人不得私自开拆他人邮件 #### 法律背景与重要性 随着社会的发展和技术的进步,个人信息安全和个人隐私保护成为公众日益关注的话题。在我国,为了加强公民通信自由和通信秘密的保护,全国...

    django Pettingpets(爱抚宠物)小程序.rar

    根据提供的信息,我们可以得到以下几点知识点: 首先,“django Pettingpets(爱抚宠物)小程序”是一个以宠物为主题的小程序项目,它使用了Python...用户需要注意版权问题,并且要正确理解项目所使用的编程语言与框架。

    紫色微信记账的微信小程序页面源码.zip

    在下载和使用紫色微信记账小程序页面源码包时,用户需要注意源码的版权问题,遵守相关法律法规和开发者的授权协议。未经许可,用户不应私自传播或用于商业用途,以免造成不必要的法律纠纷。同时,用户在学习和使用...

    海思Linux开发环境 用户指南

    海思Linux开发环境 用户指南涵盖了在海思平台进行Linux开发的相关知识,内容涉及开发环境搭建、Linux内核编译、根文件系统构建以及应用程序开发等方面。文档版本为01,发布日期为2014年10月30日,由深圳市海思半导体...

    软件著作权合作开发协议范本.docx

    5. **协议变更**:协议变更需经所有合作方一致同意,私自变更或转让协议权益视为无效,强调了协议的稳定性。 6. **禁止行为**:禁止以合作团体名义未经授权进行业务活动,防止滥用团队信誉;同时,保护商业秘密不被...

    C#开发指南C#开发指南C#开发指南

    - **实际应用**:例如,如果C#开发的应用程序在某些特定情况下出现轻微的性能下降,但整体功能仍然可用,那么企业可以期待获得支持以解决问题。 2. **使用和实施的支持**:乙方将提供有关许可软件使用和实施方面的...

    配置IPSG防止DHCP动态主机私自更改IP地址示例.pdf

    在实施IPSG时,需要考虑一些配置注意事项。比如,不是所有的交换机型号和软件版本都支持IPSG功能,例如文档中提到的V100R006C05版本的S2700-SI就不支持IPSG。此外,如果在某些华为设备上启用了IPv4报文的三层硬件...

Global site tag (gtag.js) - Google Analytics