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

文档序号:8922426阅读:578来源:国知局
软件模块的更新方法和装置的制造方法
【技术领域】
[0001]本发明涉及信息技术领域,尤其涉及一种软件模块的更新方法和装置。
【背景技术】
[0002]软件设计会将功能模块化,不同功能分别由不同模块实现,使得模块之间减少耦合,减少出错的几率。软件运行时,由宿主进程将软件模块加载到内存,对软件模块的功能进行调用。软件模块更新是重新加载新版本的软件模块,替换旧版本的软件模块。
[0003]软件模块的热更新是指不需要重启宿主进程,完成软件模块的更新。
[0004]现有技术中,宿主进程中可以存在多个线程同时访问加载的软件模块,为了保证安全卸载,在软件模块更新时,需要重启宿主进程,重新加载新版本的软件模块。由于需要重启宿主进程,也就不能实现软件模块的热更新。

【发明内容】

[0005]本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
[0006]为此,本发明的一个目的在于提出一种软件模块的更新方法,该方法可以实现软件模块的热更新。
[0007]本发明的另一个目的在于提出一种软件模块的更新装置。
[0008]为达到上述目的,本发明第一方面实施例提出的软件模块的更新方法,包括:对已加载的软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,其中,所述多个访问请求包括用于指示对所述软件模块进行更新的更新请求;由单一的线程依次从所述序列化后的请求队列中读取访问请求;当读取的访问请求是所述更新请求时,由所述单一的线程卸载所述软件模块,并重新加载更新后的所述软件模块。
[0009]可选的,所述已加载的软件模块是从宿主进程之外的预设位置加载的。
[0010]可选的,所述对已加载的软件模块的多个访问请求进行序列化处理,包括:将所述对已加载的软件模块的多个访问请求,依次排列放入预设的缓存位置。
[0011 ] 可选的,还包括:接收所述宿主进程内的第一线程发送的更新请求,所述第一线程发送的更新请求是所述第一线程接收到所述宿主进程之外的升级模块发送的更新请求后发送的,所述升级模块发送的更新请求是所述升级模块对所述软件模块进行更新并保存到所述预设位置后发送的。
[0012]可选的,所述访问请求还包括所述宿主进程内的第二线程对所述软件模块的访问请求,所述单一的线程是第三线程,所述第一线程,所述第二线程和所述第三线程互不相同。
[0013]本发明第一方面实施例提出的软件模块的更新方法,通过对软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,并由单一的线程依次从序列化后的请求队列中读取访问请求,可以保证在卸载软件模块时不存在其他线程访问该软件模块,由于不会存在多个线程同时访问加载的软件模块,可以在不重启宿主进程的情况下完成软件模块的更新,从而实现软件模块的热更新。
[0014]为达到上述目的,本发明第二方面实施例提出的软件模块的更新装置,包括:管理模块,用于对已加载的软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,其中,所述多个访问请求包括用于指示对所述软件模块进行更新的更新请求;读取模块,用于由单一的线程依次从所述序列化后的请求队列中读取访问请求;处理模块,用于当读取的访问请求是所述更新请求时,由所述单一的线程卸载所述软件模块,并重新加载更新后的所述软件模块。
[0015]可选的,还包括:加载模块,用于从宿主进程之外的预设位置加载所述软件模块。
[0016]可选的,所述管理模块具体用于:将所述对已加载的软件模块的多个访问请求,依次排列放入预设的缓存位置。
[0017]可选的,还包括:接收模块,用于接收所述宿主进程内的第一线程发送的更新请求,所述第一线程发送的更新请求是所述第一线程接收到所述宿主进程之外的升级模块发送的更新请求后发送的,所述升级模块发送的更新请求是所述升级模块对所述软件模块进行更新并保存到所述预设位置后发送的。
[0018]可选的,所述访问请求还包括所述宿主进程内的第二线程对所述软件模块的访问请求,所述单一的线程是第三线程,所述第一线程,所述第二线程和所述第三线程互不相同。
[0019]本发明第二方面实施例提出的软件模块的更新装置,通过对软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,并由单一的线程依次从序列化后的请求队列中读取访问请求,可以保证在卸载软件模块时不存在其他线程访问该软件模块,由于不会存在多个线程同时访问加载的软件模块,可以在不重启宿主进程的情况下完成软件模块的更新,从而实现软件模块的热更新。
[0020]为达到上述目的,本发明第三方面实施例提出的客户端设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为客户端设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行:对已加载的软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,其中,所述多个访问请求包括用于指示对所述软件模块进行更新的更新请求;由单一的线程依次从所述序列化后的请求队列中读取访问请求;当读取的访问请求是所述更新请求时,由所述单一的线程卸载所述软件模块,并重新加载更新后的所述软件模块。
[0021]可选的,所述已加载的软件模块是从宿主进程之外的预设位置加载的。
[0022]可选的,所述对已加载的软件模块的多个访问请求进行序列化处理,包括:将所述对已加载的软件模块的多个访问请求,依次排列放入预设的缓存位置。
[0023]可选的,还包括:接收所述宿主进程内的第一线程发送的更新请求,所述第一线程发送的更新请求是所述第一线程接收到所述宿主进程之外的升级模块发送的更新请求后发送的,所述升级模块发送的更新请求是所述升级模块对所述软件模块进行更新并保存到所述预设位置后发送的。
[0024]可选的,所述访问请求还包括所述宿主进程内的第二线程对所述软件模块的访问请求,所述单一的线程是第三线程,所述第一线程,所述第二线程和所述第三线程互不相同。
[0025]本发明第三方面实施例提出的客户端设备,通过对软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,并由单一的线程依次从序列化后的请求队列中读取访问请求,可以保证在卸载软件模块时不存在其他线程访问该软件模块,由于不会存在多个线程同时访问加载的软件模块,可以在不重启宿主进程的情况下完成软件模块的更新,从而实现软件模块的热更新。
[0026]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0027]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0028]图1是本发明一实施例提出的软件模块的更新方法的流程示意图;
[0029]图2是相关技术中软件模块的更新方法示意图;
[0030]图3是本发明实施例中软件模块的更新方法示意图;
[0031]图4是本发明另一实施例提出的软件模块的更新装置的结构示意图;
[0032]图5是本发明另一实施例提出的软件模块的更新装置的结构示意图。
【具体实施方式】
[0033]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0034]图1是本发明一实施例提出的软件模块的更新方法的流程示意图,该方法包括:
[0035]S11:对已加载的软件模块的多个访问请求进行序列化处理,得到序列化后的请求队列,其中,所述多个访问请求包括用于指示对所述软件模块进行更新的更新请求。
[0036]可选的,所述已加载的软件模块是从宿主进程之外的预设位置加载的。
[0037]一般软件设计都会将功能模块化,不同功能分别由不同软件模块实现。
[0038]在软件运行时,宿主进程可以将软件模块加载到内存中,以调用软件模块实现相应功能。其中,宿主进程也可以称为主进程,加载的软件模块可以具体是指不同版本的模
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1