软件模块的更新方法和装置制造方法及图纸

技术编号:12016125 阅读:56 留言:0更新日期:2015-09-09 11:43
本发明专利技术提出一种软件模块的更新方法和装置,该软件模块的更新方法包括对已加载的软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,其中,所述多个访问请求包括用于指示对所述软件模块进行更新的更新请求;由单一的线程依次从所述序列化后的请求队列中读取访问请求;当读取的访问请求是所述更新请求时,由所述单一的线程卸载所述软件模块,并重新加载更新后的所述软件模块。该方法可以实现软件模块的热更新。

【技术实现步骤摘要】

本专利技术涉及信息
,尤其涉及一种软件模块的更新方法和装置
技术介绍
软件设计会将功能模块化,不同功能分别由不同模块实现,使得模块之间减少耦合,减少出错的几率。软件运行时,由宿主进程将软件模块加载到内存,对软件模块的功能进行调用。软件模块更新是重新加载新版本的软件模块,替换旧版本的软件模块。软件模块的热更新是指不需要重启宿主进程,完成软件模块的更新。现有技术中,宿主进程中可以存在多个线程同时访问加载的软件模块,为了保证安全卸载,在软件模块更新时,需要重启宿主进程,重新加载新版本的软件模块。由于需要重启宿主进程,也就不能实现软件模块的热更新。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的一个目的在于提出一种软件模块的更新方法,该方法可以实现软件模块的热更新。本专利技术的另一个目的在于提出一种软件模块的更新装置。为达到上述目的,本专利技术第一方面实施例提出的软件模块的更新方法,包括:对已加载的软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,其中,所述多个访问请求包括用于指示对所述软件模块进行更新的更新请求;由单一的线程依次从所述序列化后的请求队列中读取访问请求;当读取的访问请求是所述更新请求时,由所述单一的线程卸载所述软件模块,并重新加载更新后的所述软件模块。可选的,所述已加载的软件模块是从宿主进程之外的预设位置加载的。可选的,所述对已加载的软件模块的多个访问请求进行序列化处理,包括:将所述对已加载的软件模块的多个访问请求,依次排列放入预设的缓存位置。可选的,还包括:接收所述宿主进程内的第一线程发送的更新请求,所述第一线程发送的更新请求是所述第一线程接收到所述宿主进程之外的升级模块发送的更新请求后发送的,所述升级模块发送的更新请求是所述升级模块对所述软件模块进行更新并保存到所述预设位置后发送的。可选的,所述访问请求还包括所述宿主进程内的第二线程对所述软件模块的访问请求,所述单一的线程是第三线程,所述第一线程,所述第二线程和所述第三线程互不相同。本专利技术第一方面实施例提出的软件模块的更新方法,通过对软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,并由单一的线程依次从序列化后的请求队列中读取访问请求,可以保证在卸载软件模块时不存在其他线程访问该软件模块,由于不会存在多个线程同时访问加载的软件模块,可以在不重启宿主进程的情况下完成软件模块的更新,从而实现软件模块的热更新。为达到上述目的,本专利技术第二方面实施例提出的软件模块的更新装置,包括:管理模块,用于对已加载的软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,其中,所述多个访问请求包括用于指示对所述软件模块进行更新的更新请求;读取模块,用于由单一的线程依次从所述序列化后的请求队列中读取访问请求;处理模块,用于当读取的访问请求是所述更新请求时,由所述单一的线程卸载所述软件模块,并重新加载更新后的所述软件模块。可选的,还包括:加载模块,用于从宿主进程之外的预设位置加载所述软件模块。可选的,所述管理模块具体用于:将所述对已加载的软件模块的多个访问请求,依次排列放入预设的缓存位置。可选的,还包括:接收模块,用于接收所述宿主进程内的第一线程发送的更新请求,所述第一线程发送的更新请求是所述第一线程接收到所述宿主进程之外的升级模块发送的更新请求后发送的,所述升级模块发送的更新请求是所述升级模块对所述软件模块进行更新并保存到所述预设位置后发送的。可选的,所述访问请求还包括所述宿主进程内的第二线程对所述软件模块的访问请求,所述单一的线程是第三线程,所述第一线程,所述第二线程和所述第三线程互不相同。本专利技术第二方面实施例提出的软件模块的更新装置,通过对软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,并由单一的线程依次从序列化后的请求队列中读取访问请求,可以保证在卸载软件模块时不存在其他线程访问该软件模块,由于不会存在多个线程同时访问加载的软件模块,可以在不重启宿主进程的情况下完成软件模块的更新,从而实现软件模块的热更新。为达到上述目的,本专利技术第三方面实施例提出的客户端设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为客户端设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行:对已加载的软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,其中,所述多个访问请求包括用于指示对所述软件模块进行更新的更新请求;由单一的线程依次从所述序列化后的请求队列中读取访问请求;当读取的访问请求是所述更新请求时,由所述单一的线程卸载所述软件模块,并重新加载更新后的所述软件模块。可选的,所述已加载的软件模块是从宿主进程之外的预设位置加载的。可选的,所述对已加载的软件模块的多个访问请求进行序列化处理,包括:将所述对已加载的软件模块的多个访问请求,依次排列放入预设的缓存位置。可选的,还包括:接收所述宿主进程内的第一线程发送的更新请求,所述第一线程发送的更新请求是所述第一线程接收到所述宿主进程之外的升级模块发送的更新请求后发送的,所述升级模块发送的更新请求是所述升级模块对所述软件模块进行更新并保存到所述预设位置后发送的。可选的,所述访问请求还包括所述宿主进程内的第二线程对所述软件模块的访问请求,所述单一的线程是第三线程,所述第一线程,所述第二线程和所述第三线程互不相同。本专利技术第三方面实施例提出的客户端设备,通过对软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,并由单一的线程依次从序列化后的请求队列中读取访问请求,可以保证在卸载软件模块时不存在其他线程访问该软件模块,由于不会存在多个线程同时访问加载的软件模块,可以在不重启宿主进程的情况下完成软件模块的更新,从而实现软件模块的热更新。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1是本专利技术一实施例提出的软件模块的更新方法的流程示意图;图2是相关技术中软件模块的更新方法示意图;图3是本专利技术实施例中软件模块的更新方法示意图;图4是本本文档来自技高网...
软件模块的更新方法和装置

【技术保护点】
一种软件模块的更新方法,其特征在于,包括:对已加载的软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,其中,所述多个访问请求包括用于指示对所述软件模块进行更新的更新请求;由单一的线程依次从所述序列化后的请求队列中读取访问请求;当读取的访问请求是所述更新请求时,由所述单一的线程卸载所述软件模块,并重新加载更新后的所述软件模块。

【技术特征摘要】
1.一种软件模块的更新方法,其特征在于,包括:
对已加载的软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,其
中,所述多个访问请求包括用于指示对所述软件模块进行更新的更新请求;
由单一的线程依次从所述序列化后的请求队列中读取访问请求;
当读取的访问请求是所述更新请求时,由所述单一的线程卸载所述软件模块,并重新
加载更新后的所述软件模块。
2.根据权利要求1所述的方法,其特征在于,所述已加载的软件模块是从宿主进程之
外的预设位置加载的。
3.根据权利要求1所述的方法,其特征在于,所述对已加载的软件模块的多个访问请
求进行序列化处理,包括:
将所述对已加载的软件模块的多个访问请求,依次排列放入预设的缓存位置。
4.根据权利要求1所述的方法,其特征在于,还包括:
接收所述宿主进程内的第一线程发送的更新请求,所述第一线程发送的更新请求是所
述第一线程接收到所述宿主进程之外的升级模块发送的更新请求后发送的,所述升级模块
发送的更新请求是所述升级模块对所述软件模块进行更新并保存到所述预设位置后发送
的。
5.根据权利要求4所述的方法,其特征在于,所述访问请求还包括所述宿主进程内的
第二线程对所述软件模块的访问请求,所述单一的线程是第三线程,所述第一线程,所述
第二线程和所述第三线程互不相同。
6.一种软件...

【专利技术属性】
技术研发人员:刘欢杨振辉
申请(专利权)人:北京金山安全软件有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1