[发明专利]一种应用启动过程中死锁的处理方法及装置在审
申请号: | 202111558810.5 | 申请日: | 2021-12-20 |
公开(公告)号: | CN114185623A | 公开(公告)日: | 2022-03-15 |
发明(设计)人: | 施生燊;谢鹏 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/52 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 张博 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用 启动 过程 死锁 处理 方法 装置 | ||
本公开提供了一种应用启动过程中死锁的处理方法,可以应用于金融领域或计算机技术等其他领域。该方法包括:利用应用的启动信息,将应用启动过程拆分为Spring加载阶段和Servlet加载阶段;将在Spring加载阶段进行初始化的模块分类为死锁类模块和非死锁类模块;在Spring加载阶段,将非死锁类模块进行加载操作并将死锁类模块进行非初始化操作;在Servlet加载阶段,利用新建Servlet处理类初始化死锁类模块。本公开还提供了一种应用启动过程中死锁的处理装置、设备、存储介质和程序产品。
技术领域
本公开涉及金融和计算机技术领域,具体涉及一种死锁处理方法,更具体地涉及一种应用启动过程中死锁的处理方法、装置、设备、介质和程序产品。
背景技术
目前,应用可以使用Spring框架进行应用业务处理模块的生命周期管理。主要表现为应用程序启动的时候,进行应用业务处理模块的加载,也就是应用模块实例化、初始化过程。为保证应用启动可以在较短时间内完成,Spring框架应用的模块启动加载采用的是多线程并发加载的方式。这就可能导致死锁问题,因为应用模块加载有快有慢,而且还可能存在模块间的相互依赖,如果涉及多个应用级资源的共用及争抢,那么就可能导致在应用启动阶段产生死锁,导致启动无法完成初始化。
发明内容
鉴于上述问题,本公开提供了一种应用启动过程中死锁的处理方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种应用启动过程中死锁的处理方法,包括:
利用应用的启动信息,将应用启动过程拆分为Spring加载阶段和Servlet加载阶段;
将在Spring加载阶段进行初始化的模块分类为死锁类模块和非死锁类模块;
在Spring加载阶段,将非死锁类模块进行加载操作并将死锁类模块进行非初始化操作;
在Servlet加载阶段,利用新建Servlet处理类初始化所述死锁类模块。
根据本公开的实施例,上述将在Spring加载阶段进行初始化的模块分类为死锁类模块和非死锁类模块包括:
获取所述Spring加载阶段的模块的资源配置信息;
根据所述资源配置信息,获取全局变量资源的复用信息;
根据所述复用信息,将Spring加载阶段的模块分为死锁类模块和非死锁类模块。
根据本公开的实施例,上述死锁类模块包括在初始化过程中存在全局变量资源争夺的模块。
根据本公开的实施例,上述加载操作包括初始化操作和非初始化操作,其中,非初始化操作包括实例化操作和业务逻辑处理操作。
根据本公开的实施例,上述在Servlet加载阶段,利用新建的Servlet处理类初始化所述死锁类模块包括:
利用Spring加载阶段的模块对象实例接口,获取完成非初始化操作的死锁类模块的实例;
新建Servlet处理类;
利用Servlet处理类串行调用死锁类模块的实例方法,完成死锁类模块的初始化操作。
本公开的第二方面提供了一种应用启动过程中死锁的处理装置,包括:
拆分模块,用于利用应用的启动信息,将应用启动过程拆分为Spring加载阶段和Servlet加载阶段;
分类模块,用于将在Spring加载阶段进行初始化的模块分类为死锁类模块和非死锁类模块;
加载模块,用于在Spring加载阶段,将非死锁类模块进行加载操作并将死锁类模块进行非初始化操作;以及
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111558810.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:视频监控系统
- 下一篇:一种基于跨学科的科研信息管理系统及方法